web-dev-qa-db-ja.com

Eclipse Maven依存関係jarがグレー表示され、そこからクラスをインポートできません

友人が初めてm2Eclipseを使用してMavenプロジェクトを構成するのを手伝っています。私たちはどちらもかなり不慣れであり、Projectディレクトリーの「Mavenの依存関係」の下に依存関係jarが表示されているにもかかわらず、そのjarのパッケージから何かをインポートしようとすると問題が発生します。クラスが見つかりません。

問題が発生しているjarファイルは灰色で、動作している残りのjarファイルほど不透明ではないことに気付きました。

奇妙なのは、インポートでクラス名にカーソルを合わせると、クラスの簡単な説明(jarのドキュメントから!)が表示されますが、インポートできません。他のすべてのMaven依存関係は問題なくインポートできます。何か案は?暗いアイコンの意味を見つけることすらできないようです。

enter image description hereenter image description here

また、pom.xmlは非常に単純です。

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>

ここで何が欠けているのか分かりません

12
Felix

問題が見つかりました。これは、テストディレクトリの代わりにソースディレクトリにクラスがあり、両方のMaven依存関係が「テストのみに表示」としてマークされていたためです。

12
Felix

pom.xmlファイルを開き、グレー表示されたjarファイルの変更の名前を確認します

<scope>test</scope>

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

pOMファイルで依存関係スコープを確認します

コンパイル、提供、システム、テストこれらは利用可能なテストでした

test-> compileは、依存関係を灰色から白に変更します。

依存関係がテストスコープ用である場合、その依存関係はアプリケーションでの通常の使用には使用できませんが、コンパイルスコープはプロジェクトのクラスパスでその依存関係を設定します。

3
Harish kumar NG

グレー表示されている部分についてはわかりません。これが機能である場合、テストクラスは/ srcではなく/ testの下にあることが推奨されるためです。ただし、あなたの問題の解決はプラグインの範囲です。コンパイルするように変更してください。つまり、テストをコンパイルに置き換えます:<scope>test</scope><scope>compile</scope>

それでおしまい。テストパッケージのインポートでエラーは発生しません。

0
Ashvini_Sharma

Maven pomで<scope>test</scope>を使用したときに同じ問題が発生しました。

新しいEclipse/Javaバージョンには新しい属性があるようです:

<classpathentry kind="src" output="target/test-classes" path="src/test/Java/...">
    <attributes>
        <attribute name="test" value="true"/>
    </attributes>
</classpathentry>

これは、Java Build Path Settings:

ビルドパスメニューの[テストソースを含む]オプションを示す画像

これを有効にした後、すべてのコンパイラエラーを取り除きました。

0
springe