いくつかのインターフェースを実装することで拡張できるライブラリをMavenで作成しました。デフォルトの実装をテストするために、現在に住んでいるいくつかのハムクレストマッチャーを作成しましたsrc/test/java
。
ただし、カスタマイズをテストしたい場合は、ライブラリのユーザーにとって役立つと思います。
では、どうすればそれらを利用できるようにできますか?それらをに移動するにsrc/main
は、hamcrestを実行時の依存関係にする必要があり、私はそれを望んでいません。
いくつかのインターフェースを実装することで拡張できるライブラリをMavenで作成しました。デフォルトの実装をテストするために、現在に住んでいるいくつかのハムクレストマッチャーを作成しましたsrc/test/java
。
ただし、カスタマイズをテストしたい場合は、ライブラリのユーザーにとって役立つと思います。
では、どうすればそれらを利用できるようにできますか?それらをに移動するにsrc/main
は、hamcrestを実行時の依存関係にする必要があり、私はそれを望んでいません。
コマンド「mvnjar:test-jar」を使用して、テストjarを作成し、リポジトリにインストールする方法があります。このjarは、依存関係ブロックのtest-jar修飾子を使用して、他のプロジェクトから参照できます。
このjarをビルドして、通常の「mvn install」ビルドの一部としてインストールする場合は、次のプラグイン構成をpomに追加します。
http://maven.apache.org/guides/mini/guide-attached-tests.htmlから
<project>
<build>
<plugins>
<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>
</plugins>
</build>
</project>
次に、他のプロジェクトは次のようにテストjarを参照できます。
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
あなたが言ったように、それを新しいプロジェクトのsrc/mainに移動します。そのプロジェクトはテストの依存関係でのみ使用され、モジュールのクラスパスを汚染しないようにします。
それらを独自のプロジェクトに移動してリリースする必要があるようです。そこから、元のプロジェクトで希望するスコープを決定できます。