Java 黑名单Maven依赖项

Java 黑名单Maven依赖项,java,maven,maven-3,Java,Maven,Maven 3,是否有一种方法(例如Maven插件)可以获取不需要的/黑名单上的依赖项列表(直接的和可传递的),并在检测到其中一个列出的依赖项时使构建失败 在我的项目中,我们严格希望摆脱ApacheCommons日志记录,并用SLF4J JCL桥替换它。我知道我们必须自己排除不需要的dep,但如果有人添加了导致黑名单依赖项的依赖项,我希望构建失败。是的,它的规则支持这一点。您可以使用禁止某些依赖项 下面是他们的示例,其中包含了用于排除Apache Commons日志记录的更新 [...] org.apache

是否有一种方法(例如Maven插件)可以获取不需要的/黑名单上的依赖项列表(直接的和可传递的),并在检测到其中一个列出的依赖项时使构建失败


在我的项目中,我们严格希望摆脱ApacheCommons日志记录,并用SLF4J JCL桥替换它。我知道我们必须自己排除不需要的dep,但如果有人添加了导致黑名单依赖项的依赖项,我希望构建失败。

是的,它的规则支持这一点。

您可以使用禁止某些依赖项

下面是他们的示例,其中包含了用于排除Apache Commons日志记录的更新


[...]
org.apache.maven.plugins
maven enforcer插件
1.1.1
强制执行禁止的依赖项
执行
公共日志:公共日志
真的
[...]
运行
mvn安装时的输出将是:

[WARNING] Rule 1: org.apache.maven.plugins.enforcer.BannedDependencies failed with message:
Found Banned Dependency: commons-logging:commons-logging:jar:1.1.1
Use 'mvn dependency:tree' to locate the source of the banned dependencies.

这一切都以一个
构建失败

而告终。我最喜欢的另一个规则是codehaus extra enforcer规则库中的规则。这将检测
commons日志
jcl-over-slf4j
上的依赖项所引入的重复类。在我的例子中,我希望修复它,而不是使构建失败:
找到禁用的依赖项:commons logging:commons logging:jar:1.2
。我的项目没有直接使用它。它使用了一些需要这个禁用库的X。现在如何使用
X
?@Nawaz您可以在声明依赖项时使用
排除可传递依赖项。我使用
解决了这个问题。这对我很管用。我希望Java生态系统使用更少的XML,它非常冗长,并且使用更简洁的东西,YAML之类的。