繁体   English   中英

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

[英]Add parameters to Maven Enforcer Rules called from the command line

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

这很有效,但不幸的是我还不明白是否可以通过命令行设置规则参数。 一个例子是RequireMavenVersion规则中的version

不,你不能。 由于这些期望,我实际上对当前的实现并不满意。 第一个用例是一个简单的无参数规则。 当然,我们可以预测接下来的问题。

让我们首先解释“复杂”插件配置是如何工作的。 看看下面的例子:

<rules>
  <requireMavenVersion>
    <version/>
  </requireMavenVersion>
</rules>

这里 requireMavenVersion 是与 EnforceMojo(或enforce目标)在同一个包中的小写类名,version 是这个类的一个 setter。 你所看到的只不过是一个 Pojo。 这里唯一的要求是 RequireMavenVersion 实现了 EnforcerRule 接口,所以 Maven 可以调用它的execute方法见:

 @Parameter
 private EnforcerRule[] rules;

如果您想从命令行调用规则,插件 simple 会尝试将规则重命名为完全限定的类名,并为其创建一个新实例。 接下来将调用它的 execute 方法。

此功能的要求是在不涉及项目的情况下执行规则。 这应该作为 Maven 扩展来解决,它更适合该用例。

但总而言之:不,你不能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM