web-dev-qa-db-fra.com

Le paquet Maven fonctionne mais la construction d'Intellij échoue

J'ai un projet JDK 1.7 avec une dépendance maven à un pot local dans mon dépôt Maven.

Je ne parviens pas à créer le projet à l'aide d'Intellij, avec les erreurs qu'un symbole est introuvable (le symbole est une classe important des packages à partir du fichier jar local)

Mais je peux réussir à construire le projet en utilisant 'package mvn'.

J'ai passé tellement de temps à chercher des solutions, des choses que j'ai déjà faites:

  • Cache invalidé
  • 'mvn clean install' la dépendance de jar locale
  • Marqué comme 'autoload snapshots' dans la configuration maven d'Intellij
  • Maven réintégré dans Intellij
  • Syncornisé

Cette erreur est survenue plusieurs fois auparavant, mais généralement, le simple fait de fermer l'Intellij et/ou de procéder à «l'installation en mode minimal» a été décisif.

S'il vous plaît aider.

52
Yarin Miran

J'ai découvert que mon fichier .iml et pom étaient en conflit et causaient le problème.

10
Yarin Miran

Je sais que c'est tard, mais l'exécution de mvn idea:idea résout le problème. 

78
Rahul Jha

Essayez de supprimer tous les fichiers .iml et votre POM . Ensuite, copiez et collez à nouveau votre POM dans votre projet, puis rouvrez-le et importez-le à nouveau.

22
masoodg

Ajout de quelques astuces supplémentaires car c’est la première chose qui est apparue dans la recherche alors que j’avais des problèmes similaires (le projet est construit dans MVN, pas dans IntelliJ), au cas où cela pourrait aider une autre personne.

Quand j'ai eu cela, c'était un correctif différent sur Windows et Mac.

Sur Mac, je suis allé dans ItellijIDEA/Préférences/Construire, Exécution, Déploiement/Outils de compilation/Maven/Répertoire de base Maven et je l'ai configuré pour utiliser mon Maven installé séparément plutôt que le Maven fourni. Tous les problèmes de construction ont disparu.

Sous Windows, je voyais des exceptions dans le fichier idea.log lié à SSL et mon arborescence de projets ne comportait que Java sous la branche External Libraries. En regardant sur d’autres sites, il semble que IntelliJ utilise son propre JDK privé au lieu du système (même si dans mon cas j’avais déjà la même version du JDK installée). Le kit JDK de mon système contient des certificats installés dans le magasin de clés du serveur d'entreprise Nexus, contrairement au kit JDK privé IntelliJ. Des exceptions ont donc été générées lors de la tentative d'obtention de fichiers auprès de Nexus. Pour cela, la solution consistait à quitter IntelliJ, à définir une variable d'environnement appelée IDEA_JDK afin de pointer vers le JDK que j'avais déjà installé et doté des certificats appropriés, puis à redémarrer IntelliJ. Tous les problèmes de construction ont disparu.

13
rrjp

Je sais que je suis assez en retard pour cette conversation, mais je voulais juste poster ceci au cas où quelqu'un d'autre rencontrerait ce problème. Cela se produit également parce que vous ne faites pas référence au bon référentiel. Intellij choisit la version fournie d'un fichier jar par défaut au lieu de celle de votre propre référentiel Maven. Confirmez que le référentiel connecté est le bon.

3
Optimiser

Maven ReImport a travaillé pour moi comme ci-dessous ...

 enter image description here

3
Ram Ghadiyaram

IDE utilise sa propre copie fournie de Maven lors de la génération. Si maven on terminal est différent de IDE, vous voulez qu'ils soient identiques.

GOTO (sur un Mac) - IntelliJ Idea -> Préférences -> Construire, Exécution, Déploiement -> Construire Outils -> Maven. Définissez le chemin d'accès à votre répertoire de base Maven Pour rechercher le chemin d'accès à Maven que vous utilisez depuis un terminal, tapez la commande mvn -version et indiquez le nombre de détails, y compris le chemin du répertoire. Mettez cela dans Maven Home Directory.

Pour plus de sécurité, vous pouvez également faire de même pour l’emplacement JDK.

==== Quelques autres choses pouvant causer de tels problèmes ===

Si vous utilisez des packages mvn ou mvn clean install, vous devez utiliser quelque chose avec les caches IDE . Entre autres choses, celle-ci aide généralement à résoudre de telles erreurs ->

Fichier -> Invalider les caches

2
Akshayraj Kore

Dans mon cas, mon iml n'était pas synchronisé, alors j'ai supprimé l'iml pour le module spécifique, puis sous l'option maven, sélectionnez Unignore Project pour recréer iml. 

2
Bikas Katwal

"symbole introuvable" signifie que intellij n'est pas capable de résoudre la "dépendance". Vous pouvez donc forcer "Analyse de dépendance" en cliquant sur "Analyser" -> "Analyser les dépendances" puis sélectionnez "Portée de l'analyse"

1
dgm

à partir de la commande Invite, exécutez la commande: mvn idea:idea et cliquez avec le bouton droit de la souris sur le projet -> dans le menu, réimportez les dépendances.

1
Ram Maddela

J'ai fermé le projet et l'ai réimporté en cliquant sur le pom racine (pas seulement le dossier, mais le fichier pom lui-même).

0
Togepi

J'ai eu le même problème. Aller à:

Fichier -> Structure du projet -> Module. Sélectionnez votre module et sous l'onglet "Dépendances", assurez-vous que toutes les dépendances maven sont ajoutées.

Pour vous assurer que vous êtes averti d'un problème similaire dans l'éditeur d'idées: passez de "Onglet Dépendances" à "Sources" et ajoutez la marque votre source comme source.

0
Denorm

Il y a aussi une possibilité qui n'a pas été mentionnée. Si vous importez une bibliothèque à partir de com.Sun.*. Cela causera également ce problème.

Les programmes fonctionnent lorsqu'ils sont exécutés dans ide, car ces classes dans com.Sun.* sont toutes dans le répertoire jre/lib, elles seront chargées lors de leur exécution. Mais lorsque vous exécutez mvn package, ces bibliothèques ne seront pas accessibles en raison de la restriction d'Oracle depuis Java 1.6 (ces bibliothèques ont été déconseillées). Pour résoudre ce problème, vous pouvez ajouter

<build>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <verbose />
                        <bootclasspath>C:/Program Files/Java/jdk1.8.0_161/jre/lib/rt.jar</bootclasspath>
                    </compilerArguments>
                </configuration>
            </plugin>
        </plugins>
    </build>

n'oubliez pas de remplacer le cootclasspath par votre propre chemin de rt.jar

Vous pouvez rechercher Access restriction: The type XXX is not accessible due to restriction on required library pour plus de détails.

0
poorguy

J'ai essayé d'invalider le cache, de changer le Maven en version installée et rien n'a fonctionné.

Fermer et recréer un nouveau projet ont résolu le problème.

0
Anubha

J'ai eu le même problème. J'ai changé la version de maven de 3.0.5 à 3.0.4 dans les paramètres d'idée et tout fonctionne bien maintenant. Je ne sais pas pourquoi ça m'aide.

0
Boris Mitioglov

Cette procédure simple prend environ 1 minute sans aucun rappel. 

  • Fermer IntelliJ
  • Supprimez seulement _ les fichiers spécifiques à IntelliJ tels que .idea/*, * .iml, .settings, etc. Il était suggéré de supprimer également le POM, mais ce n'est pas nécessaire à mon humble avis. 
  • Recréez ensuite le projet dans IntelliJ en utilisant: Fichier > Nouveau> Projet à partir de sources existantes> suivez les étapes. Veillez à NE PAS importer plusieurs profils ou (mêmes projets). 
0
tjm1706

J'ai tout essayé ci-dessus sans joie. Cependant, j'ai fait une chose qui a finalement réussi à le faire fonctionner: 

Je suis allé à C:\Utilisateurs\.IntellijJIdea2018.2 et viens de supprimer le dossier entier. 

Il supprime tous les paramètres et le cache pour IntelliJ. Je devais réimporter mon projet à partir de zéro mais une simple suppression et réimportation n'avait pas fonctionné auparavant, mais cela a finalement permis de le faire fonctionner à nouveau.

0
Emma

Beaucoup de conseils utiles dans les autres réponses ici, je veux juste ajouter la solution qui a fonctionné pour mon problème

Nous avons récemment commencé à utiliser un référentiel Maven privé et faisons toujours mvn -s settings.xml lors de l'appel de la cmdline Maven. Bien entendu, IntelliJ ne connaît pas le dépôt privé, il a donc besoin d’un peu d’aide. 

Allez dans Paramètres -> Construire, Exécution, Déploiement -> Outils de construction -> Maven et écrasez l'option "Fichier de paramètres de l'utilisateur".

 enter image description here

0
Johannes Rudolph

Supprimez le dossier .idea et fermez l'IDE

rouvrez le IDE et importez le projet qui effectuera une nouvelle importation car le dossier .IDEA a déjà été supprimé par nous

Vérifiez le module des bibliothèques externes et s'il ne contient pas les dépendances requises, vérifiez si l'emplacement maven settings.xml est indiqué correctement dans l'EDI.

0
firstpostcommenter

Si vous utilisez Gradle, essayez la commande ci-dessous. Cela a résolu mon problème.

gradle cleanIdea idea

0
Liju John