java - 将参数添加到从命令行调用的 Maven Enforcer Rules

标签 java maven command-line-interface maven-enforcer-plugin

关注 https://stackoverflow.com/a/59389998/927493 ,现在可以从命令行调用 Maven 执行器插件。

这很好用,但不幸的是我还不明白我是否可以通过命令行设置规则参数。一个例子是 versionRequireMavenVersion规则。

最佳答案

不,你不能。由于这些期望,我实际上对当前的实现并不满意。第一个用例是一个简单的无参数规则。当然,我们可以预测下一个问题。
让我们先解释一下“复杂”的插件配置是如何工作的。看看下面的例子:

<rules>
  <requireMavenVersion>
    <version/>
  </requireMavenVersion>
</rules>
这里 requireMavenVersion 是与 EnforceMojo(或 enforce 目标)相同的包中的小写类名,version 是此类的 setter 。你所看到的只不过是一个 Pojo。这里唯一的要求是RequireMavenVersion实现了EnforcerRule接口(interface),所以Maven可以调用它的execute方法见:
 @Parameter
 private EnforcerRule[] rules;
如果您想从命令行调用规则,插件简单尝试将规则重命名为完全限定的类名,并创建它的新实例。接下来将调用其执行方法。
对该功能的要求是在不涉及项目的情况下强制执行规则。这应该作为一个 Maven 扩展来解决,它更适合该用例。
但总而言之:不,你不能。
更新 从 Maven Enforcer 3.0.0 开始,有一个 Maven Enforcer Extension这为您提供了一种额外的方式来定义实现者规则。

关于java - 将参数添加到从命令行调用的 Maven Enforcer Rules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60265976/

相关文章:

maven - 我们怎么知道我们可以信任 Maven 中央存储库?

go - 通用函数中的Golang眼镜蛇命令标志未从cli获取值

java - 如何绕过 Maven 中的编译?

java - 使用 JUnit 测试异步代码

java - 事件在 Java Swing 中是如何工作的?

java - 具有两个表的 Hibernate 映射

eclipse - 如何设置 typescript + maven eclipse 插件

symfony - 如何避免终端捕获错误而不是Symfony探查器

python - 需要将 `-` 字符嵌入到 python argparse 中的参数中

java - MySQL从存储引擎读取自增值失败