在我的一个 POM 中,依赖项的范围错误。在运行应用程序时,此(测试)依赖项是 OutOfMemoryError 的原因。
我想通过添加一个迭代所有(包括传递)依赖项并验证某个模式的出现的插件来防止这种情况,例如包含“test”的 artifactId。
当出现某种模式时,如何过滤所有依赖项并使构建失败?
在 dan1st 回答之后,这个解决方案符合我目前的需求:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>*:*-test</exclude>
<exclude>*:test-*</exclude>
</excludes>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
Maven 执行器插件允许禁止依赖项:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<searchTransitive>true</searchTransitive>
<message>Dependency not allowed!</message>
<excludes>
<!-- do one of the following: -->
<exclude>all.dependencies.with.this.group.id.are.banned</exclude>
<exclude>group.id-to-ban:artifact-id-of-artifact-to-ban</exclude>
<exclude>group.id-to-ban:artifact-id-of-artifact-to-ban:versiontoban</exclude>
<!-- wildcards with '*' are also allowed -->
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句