J'aide un ami à configurer un projet maven avec m2Eclipse pour la première fois. Nous sommes tous deux assez peu familiers avec ce problème et nous rencontrons un problème dans lequel même si un fichier jar de dépendances apparaît avec des packages sous "dépendances maven" dans le répertoire Project, si nous essayons d'importer quelque chose de ne peut pas trouver la classe.
J'ai remarqué que les pots qui ont des problèmes sont gris et pas aussi opaques que le reste des pots qui fonctionnent.
Ce qui est étrange, c’est que si vous survolez le nom de la classe dans l’importation, il affiche une brève description de la classe (à partir de la documentation dans le pot!), Mais ne me permet pas de l’importer. Toutes les autres dépendances maven peuvent être importées sans problème. Des idées? Nous n'arrivons même pas à trouver ce que signifie l'icône plus sombre.
En outre, le fichier pom.xml est extrêmement simple:
http://maven.Apache.org/xsd/maven-4.0.0.xsd"> 4.0.0
<groupId>com.something.portal.test</groupId>
<artifactId>PortalFrontEndTests</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>PortalFrontEndTests</name>
<url>http://maven.Apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Selenium -->
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>2.53.1</version>
</dependency>
<!-- TestNG -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Je ne suis pas sûr de ce que je manque ici
J'ai trouvé le problème. C'était parce que j'avais la classe dans le répertoire source à la place du répertoire test et que les deux dépendances maven avaient été marquées comme "Visible uniquement pour tester"
ouvrez votre fichier pom.xml recherchez le nom du fichier jar grisé change
<scope>test</scope>
à
<scope>compile</scope>
vérifier votre portée de dépendance dans le fichier POM
compiler, fournir, système et tester ceux-ci étaient les tests disponibles
test -> compile changerait vos dépendances du gris au blanc.
Si votre dépendance concerne l'étendue de test, cette dépendance n'est pas disponible pour une utilisation normale dans l'application, tandis que la portée de la compilation définit cette dépendance dans le chemin de classe de votre projet.
Je ne suis pas sûr de la partie grisée. S'il s'agit de la fonctionnalité car elle suggère que la classe Testing devrait être sous/test plutôt /src. Cependant, la solution à votre problème dépend de la portée du plug-in, changez-le pour le compiler et vous serez prêt à partir . remplace le test par la compilation: <scope>test</scope>
<scope>compile</scope>
C'est tout. vous n'obtiendrez aucune erreur pour les packages de test d'importation.
J'ai eu le même problème quand j'ai utilisé le <scope>test</scope>
dans le pom maven.
Il semble que les nouvelles versions d'Eclipse/Java aient un nouvel attribut:
<classpathentry kind="src" output="target/test-classes" path="src/test/Java/...">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
Cela doit être activé dans les paramètres du chemin de construction Java:
Image illustrant l'option "Containts test sources" du menu de chemin de construction
Après avoir activé cela, je me suis débarrassé de toutes les erreurs du compilateur.