Ich helfe einem Freund, zum ersten Mal ein Maven-Projekt mit m2Eclipse zu konfigurieren. Wir sind beide ziemlich unbekannt, und wir haben ein Problem, bei dem, obwohl ein Abhängigkeitsglas mit Paketen darin unter "Maven-Abhängigkeiten" im Projektverzeichnis angezeigt wird, wenn wir versuchen, irgendetwas aus einem dieser Glaspakete zu importieren kann die Klasse nicht finden.
Ich habe bemerkt, dass die Gläser, die Probleme haben, grau und nicht so undurchsichtig sind wie der Rest der Gläser, die funktionieren.
Seltsam ist, wenn Sie den Importnamen über den Klassennamen bewegen (es wird eine kurze Beschreibung der Klasse angezeigt (aus der Dokumentation im Glas!), Aber ich kann sie nicht importieren. Alle anderen Maven-Abhängigkeiten können problemlos importiert werden. Irgendwelche Ideen? Wir können nicht einmal herausfinden, was das dunklere Symbol bedeutet.
Auch die pom.xml ist denkbar einfach:
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>
Ich bin mir nicht sicher, was mir hier fehlt
Ich habe das Problem gefunden. Es war, weil ich die Klasse im Quellverzeichnis anstelle des Testverzeichnisses hatte und beide Abhängigkeiten des Maven als "Sichtbar nur zum Testen" markiert wurden
Öffnen Sie die Datei pom.xml
<scope>test</scope>
zu
<scope>compile</scope>
Überprüfen Sie Ihren Abhängigkeitsbereich in der POM-Datei
kompilieren, Bereitstellen, Systemieren und Testen Dies waren die verfügbaren Tests
test -> compile würde Ihre Abhängigkeiten von grau nach weiß ändern.
Wenn Ihre Abhängigkeit für den Testbereich gilt, steht diese Abhängigkeit nicht für die normale Verwendung in der Anwendung zur Verfügung, während der Kompilierungsbereich diese Abhängigkeit im Klassenpfad Ihres Projekts festlegt.
Ich bin mir nicht sicher, ob der Teil grau ist. Wenn dies die Funktion ist, da dies darauf hindeutet, dass die Testing-Klasse unter/test sein sollte, stattdessen /src. Die Lösung für Ihr Problem ist der Umfang des Plugins. Test durch Kompilieren ersetzen: <scope>test</scope>
<scope>compile</scope>
Das ist es. Sie erhalten keine Fehler beim Importieren von Testpaketen.
Ich hatte das gleiche Problem, als ich den <scope>test</scope>
im Maven Pom verwendete.
Es scheint, als hätten die neueren Eclipse/Java-Versionen ein neues Attribut:
<classpathentry kind="src" output="target/test-classes" path="src/test/Java/...">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
Dies sollte in den Java Build Path-Einstellungen aktiviert werden:
Bild mit der Option "Enthält Testquellen" aus dem Buildpfad-Menü
Nachdem ich dies aktiviert hatte, habe ich alle Compiler-Fehler beseitigt.