友人が初めてm2Eclipseを使用してMavenプロジェクトを構成するのを手伝っています。私たちはどちらもかなり不慣れであり、Projectディレクトリーの「Mavenの依存関係」の下に依存関係jarが表示されているにもかかわらず、そのjarのパッケージから何かをインポートしようとすると問題が発生します。クラスが見つかりません。
問題が発生しているjarファイルは灰色で、動作している残りのjarファイルほど不透明ではないことに気付きました。
奇妙なのは、インポートでクラス名にカーソルを合わせると、クラスの簡単な説明(jarのドキュメントから!)が表示されますが、インポートできません。他のすべてのMaven依存関係は問題なくインポートできます。何か案は?暗いアイコンの意味を見つけることすらできないようです。
また、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>
ここで何が欠けているのか分かりません
問題が見つかりました。これは、テストディレクトリの代わりにソースディレクトリにクラスがあり、両方のMaven依存関係が「テストのみに表示」としてマークされていたためです。
pom.xmlファイルを開き、グレー表示されたjarファイルの変更の名前を確認します
<scope>test</scope>
に
<scope>compile</scope>
pOMファイルで依存関係スコープを確認します
コンパイル、提供、システム、テストこれらは利用可能なテストでした
test-> compileは、依存関係を灰色から白に変更します。
依存関係がテストスコープ用である場合、その依存関係はアプリケーションでの通常の使用には使用できませんが、コンパイルスコープはプロジェクトのクラスパスでその依存関係を設定します。
グレー表示されている部分についてはわかりません。これが機能である場合、テストクラスは/ srcではなく/ testの下にあることが推奨されるためです。ただし、あなたの問題の解決はプラグインの範囲です。コンパイルするように変更してください。つまり、テストをコンパイルに置き換えます:<scope>test</scope>
<scope>compile</scope>
それでおしまい。テストパッケージのインポートでエラーは発生しません。
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:
ビルドパスメニューの[テストソースを含む]オプションを示す画像
これを有効にした後、すべてのコンパイラエラーを取り除きました。