webentwicklung-frage-antwort-db.com.de

Eclipse Maven-Abhängigkeitsglas ist ausgegraut, es können keine Klassen daraus importiert werden

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. 

 enter image description here  enter image description here

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

6
Otter

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

7
Ahri

Öffnen Sie die Datei pom.xml 

<scope>test</scope>

zu

<scope>compile</scope>
2
Vishnu M. D.

Ü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.

0
Harish kumar NG

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. 

0
Ashvini_Sharma

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.

0
springe