同じプロジェクトでMavenのコンパイルが失敗し、Mavenのインストールが成功する理由を説明するのに途方に暮れています。コンテキスト: Eclipse と m2e を実行すると、すべてがワークスペースでコンパイルされます。実行構成 > Maven のコンパイルは失敗しますが (シンボルが見つかりません)、Maven のインストールは成功します。したがって、私の理解では、Maven install は Maven compile を呼び出します。Maven のコンパイルに失敗しました:シンボルが見つかりませんでした。これは、.java テスト クラスの祖先クラスにあります。興味深いことに、このクラスで run as > JUnit テストを実行すると、同じ祖先クラスで ClassNotFound のコンパイル エラーが表示されます。手伝ってくれますか?- チャック
1 に答える
Eclipse では、すべての Java ファイルがソース フォルダーからtarget/classes
(変更可能) にコンパイルされます。Eclipseは、すべてのクラスをコンパイルするために使用します-すべてのスコープ(コンパイル、テスト、提供など)および他のプロジェクト(プロジェクトがワークスペースで開いている他のものに依存しているかどうかを確認してください)を持つpomから。実行するとmaven install
、maven はすべてのクラスがコンパイルされているかどうかをチェックし、jar パッケージを作成します。クラスがどのようにコンパイルされたのかわかりませんか? MavenまたはEclipseで?
maven compile (パッケージのインストール) でコンパイルする場合 - maven は、スコープが compile/provided のライブラリのみを使用します。他の依存関係は使用しません。
テストを行うことができます。あなたのpomに追加してください:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>test</scope>
</dependency>
src/main/java @Test アノテーションからクラスの 1 つで使用します。Eclipse プロジェクトではコンパイルされます。ただしmvn clean install
、コンパイル エラーが表示されます (No such class Test)。