3

从命令行使用 jQAssistant-Maven-Plugin 时是否可以传递 ruleParameters 参数?

我试图像这样调用插件的分析目标:

 mvn com.buschmais.jqassistant:jqassistant-maven-plugin:1.8.0:analyze  -Djqassistant.ruleParameters=KEY.VALUE

但得到错误

Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: 
Cannot assign configuration entry 'ruleParameters' with value '${jqassistant.ruleParameters}' of type java.lang.String to property of type java.util.Map

像这样格式化键值对时出现同样的错误:

  • 键=值
  • 核心价值

我需要以这种方式使用 jQAssistant-Maven-Plugin,因为我无法更改 Projects POM,也无法以任何其他方式安装 jQAssistant。不幸的是,我找不到任何关于如何使用 Maven 将 Maps 作为命令行参数传递的信息。

很抱歉问这是否是一个 Maven 问题。

4

1 回答 1

1

这确实是一个 Maven 问题:在内部 pom.xml 中的 ruleParameters 直接由 Map 表示,值由 Maven 传播。AFAIK 无法直接使用命令行上的属性来覆盖它。

一个解决方案可能是在 pom.xml 中有一个模板 ruleParameters 部分,如下所示:

<ruleParameters>
  <my-rule.param>${myRuleParam}</my-rule.param>
</ruleParameters>

这将允许运行

mvn jqassistant:analyze -DmyRuleParam=foo
于 2020-10-02T15:23:27.957 回答