maven enforcer插件的用法
我想使用maven enforcer插件检查我的路径上是否有重复的类。 我从这里试过这个例子。
但当我这样运行时:
mvn enforcer:enforce
我明白了:
无法在项目datapopulator上执行目标org.apache.maven.plugins:maven-enforcer-plugin:1.0.1:enforce(default-cli):目标org.apache.maven.plugins的参数’rules’:maven-enforcer -plugin:1.0.1:强制执行缺失或无效
有没有办法正确使用它?
编辑#1
如果将我的配置更改为:
org.apache.maven.plugins maven-enforcer-plugin 1.0.1 enforce-versions enforce true
产生相同的错误。
您的第一个版本无法工作的原因是执行标记内的插件配置与执行标记外的插件配置之间存在差异。 仅当您的插件由完整Maven构建的特殊阶段触发时才会执行执行。
Maven配置指南更好地解释了它:
标记内的配置与外部的配置不同,因为它们不能从直接命令行调用中使用。 相反,它们仅在调用它们绑定的生命周期阶段时应用。 或者,如果将配置部分移到执行部分之外,它将全局应用于插件的所有调用。
试试这个,将配置移到执行外部,这样它就不会生命周期阶段了。
org.apache.maven.plugins maven-enforcer-plugin 1.0.1 enforce-versions enforce true
现在当你执行mvn enforcer:enforce
,它会从你的pom.xml中选择规则。
看到这些答案
您可以使用特殊的默认命令行执行ID,default-cli来调用它(请参阅Maven Docs ),请参阅下面的示例。 这至少适用于3.1.1,引用的文章说它应该适用于2.2.0+
mvn enforcer:enforce
但是,如果您使用Maven 3.1.1 以上 (我可以确认它在3.3.3中使用enforcer v 1.4.1),您可以使用新的@语法指定您希望的执行ID(参见Maven JIRA和上面的答案);
例如,以下示例使用
mvn enforcer:enforce@dependency-convergence
这是我的pom的一个片段;
org.apache.maven.plugins maven-enforcer-plugin 1.4.1 dependency-convergence install enforce true default-cli enforce true ...
我不知道为什么它不适用于执行中的配置,但这对我有用:
org.apache.maven.plugins maven-enforcer-plugin 1.0 true false org.codehaus.mojo extra-enforcer-rules 1.0-alpha-1
- 在Eclipse中为Java项目存储资源的位置(图像,数据文件……)?
- 将String与枚举值进行比较的正确方法是什么?
- Log4j:如何为多个appender定义公共布局和ConversionPattern
- java.io.IOException:服务器返回HTTP响应代码:411为URL:https://login.live.com/oauth20_token.srf?code =
- 使用JPA更新多行
- JSONObject文本必须以“{”错误开头
- 动态更改嵌套for循环的数量
- JavaFX WebView无法使用不受信任的SSL证书
- 如何使用selenium在PhantomJS中设置代理身份validation?