私が取り組んでいるプロジェクトは、Mavenで構築された複数のモジュールで構成されています。一部のモジュールのテストコードは、他のモジュールのテストコードに依存しています。これらの依存関係は次のように宣言されています。
依存関係モジュールの場合:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
前のモジュールに依存しているモジュールの場合:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>themodulename</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
この構成を使用すると、Mavenインストールフェーズを正常に実行できます。ただし、テストjarファイルの依存関係を解決できないため、コンパイルフェーズまたはテストフェーズを実行しようとすると失敗します。
test-jarの目標を見ると、パッケージフェーズ中にデフォルトで実行されるように構成されているようです。これが問題の原因だと思います。
次に、最初の構成を次のように変更して、コンパイルフェーズ中にこの目標を強制的に実行しようとしました。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
デバッグログを見ると、コンパイルフェーズで目標が実行されていることがわかりますが、これも次のようになります。
[WARNING] JAR will be empty - no content was marked for inclusion!
インクルードを**/*に構成しようとし、デフォルトのtestClassesDirectoryが正しいものに設定されていることを確認しましたが、それでも同じ警告が表示されます。
コンパイルフェーズの実行後にtest-classesフォルダーが存在しなかったことがわかりました。これは正常に見えますが、テストフェーズの実行後に存在し、ファイルが含まれていても、「JARは空になります」という警告が表示されます。 。
コンパイルまたはテストフェーズを正常に実行できるように、この構成を修正することについて誰かが考えていますか?