3年前、バージョン99が存在しないことを推奨しましたが、特にバージョン99がオフラインであるため、より良い方法を見つけました。
プロジェクトの親POMで、maven-enforcer-pluginを使用して、不要な依存関係がビルドに侵入した場合にビルドを失敗させます。これは、プラグインの禁止された依存関係ルールを使用して実行できます。
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>only-junit-dep-is-used</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>junit:junit</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
次に、不要な依存関係について警告が表示されたら、親POMの<dependencyManagement>
セクションで除外します。
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-test</artifactId>
<version>2.1.8.RELEASE</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
このようにして、不要な依存関係が誤って表示されることはなく(単なる<exclusion>
忘れやすいものとは異なりprovided
)、コンパイル時にも(スコープとは異なり)使用できず、(バージョン99とは異なり)偽の依存関係はありません。 (バージョン99とは異なり)カスタムリポジトリなしで動作します。このアプローチは、アーティファクトのバージョン、分類子、スコープ、またはgroupId全体に基づいて機能します。詳細については、ドキュメントを参照してください。