maven-enforcerプラグインのbannedDependenciesルールを使用して、特定のSpringバージョン(3.1.2)を適用したいと思います。
これは、それを実現するためにエンフォーサープラグインを構成する正しい方法ですか?
<configuration>
<rules>
<bannedDependencies>
<searchTransitive>true</searchTransitive>
<excludes>
<exclude>org.springframework</exclude>
</excludes>
<includes>
<include>org.springframework:*:3.1.2</include>
</includes>
</bannedDependencies>
</rules>
<fail>true</fail>
<failFast>true</failFast>
<ignoreCache>true</ignoreCache>
</configuration>
上記は機能しているようmvn enforcer:enforce
で、コマンドラインでを実行すると、v3.1.0またはorg.springframework:spring-oxmが推移的な依存関係として取り込まれていることが強調されました。
また、 dependencyConvergenceルールを使用したい場合もあるようですが、Mavenによって「競合」として自動的に除外される多くの依存関係エラーが強調表示されます。
これはもう少しコンテキストのあるスニペットです:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven.enforcer.plugin}</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
<configuration>
<rules>
<bannedDependencies>
<searchTransitive>true</searchTransitive>
<excludes>
<exclude>org.springframework</exclude>
<exclude>org.springframework.security</exclude>
<exclude>org.slf4j</exclude>
</excludes>
<includes>
<include>org.springframework:*:${spring.version}</include>
<include>org.springframework.security:*:${spring-security.version}</include>
<include>org.slf4j:*:${slf4j.version}</include>
</includes>
</bannedDependencies>
<requireJavaVersion>
<version>${enforce.jdk.version}</version>
</requireJavaVersion>
</rules>
<fail>true</fail>
<failFast>true</failFast>
<ignoreCache>true</ignoreCache>
</configuration>
</plugin>
.....
</plugins>