メイン JAR を通常のアーティファクトと「JUnit サポート JAR」に分割する POM フラグメントを次に示します。
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<index>true</index>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<excludes>
<exclude>**/junit/**</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>junit-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>junit</classifier>
<archive>
<index>true</index>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<includes>
<include>**/junit/**</include>
</includes>
</configuration>
</execution>
<execution>
<id>test-jar</id>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
簡単に言うとjunit
、名前に が含まれるパッケージを探して JUnit JAR に入れ、通常のアーティファクトから除外します。
通常の瓶の座標が
<groupId>com.group</groupId>
<artifactId>foo</artifactId>
次に、以下を追加するだけで JUnit サポート コードを取得できます<classifier>junit</classifier>
。
<groupId>com.group</groupId>
<artifactId>foo</artifactId>
<classifier>junit</classifier>
したがって、これを使用するには、依存する POM は次のcom.group:foo
ようになります。
<dependency>
<groupId>com.group</groupId>
<artifactId>foo</artifactId>
<version>...</version>
</dependency>
<dependency>
<groupId>com.group</groupId>
<artifactId>foo</artifactId>
<version>...</version>
<classifier>junit</classifier>
<scope>test</scope>
</dependency>
「JUnit サポート JAR」をコンパイルするために JUnit が必要になる場合があります。その場合は、使用します
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>compile</scope>
<optional>true</optional>
</dependency>
JUnit をビルドに含めます。これにより、コンパイル時に依存関係が利用可能になりますが、他の人に漏れることはありません。