JF *_*ier 7 java command-line-interface maven maven-enforcer-plugin
在/sf/answers/4157299891/之后,现在可以从命令行调用 Maven 执行器插件。
这很有效,但不幸的是我还不明白是否可以通过命令行设置规则参数。一个例子是version在RequireMavenVersion规则中。
不,你不能。由于这些期望,我实际上对当前的实施并不满意。第一个用例是一个简单的无参数规则。当然我们可以预测接下来的问题。
我们首先解释一下“复杂”的插件配置是如何工作的。看一下下面的例子:
<rules>
<requireMavenVersion>
<version/>
</requireMavenVersion>
</rules>
Run Code Online (Sandbox Code Playgroud)
这里 requireMavenVersion 是与 EnforceMojo(或enforce目标)位于同一包中的小写类名,version 是此类的设置器。你看到的不过是一个Pojo。这里唯一的要求是 RequireMavenVersion 实现 EnforcerRule 接口,因此 Maven 可以调用其execute方法参见:
@Parameter
private EnforcerRule[] rules;
Run Code Online (Sandbox Code Playgroud)
如果您想从命令行调用规则,插件会尝试将规则重命名为完全限定的类名,并为其创建一个新实例。接下来将调用其执行方法。
对此功能的要求是在不触及项目的情况下强制执行规则。这应该作为 Maven 扩展来解决,它更适合该用例。
但结论是:不,你不能。
更新从 Maven Enforcer 3.0.0 开始,有一个Maven Enforcer 扩展,它为您提供了一种额外的方法来定义强制执行器规则。
| 归档时间: |
|
| 查看次数: |
237 次 |
| 最近记录: |