【问题标题】:Maven doesn't recognize parameter when containing "-"Maven 在包含“-”时无法识别参数
【发布时间】:2019-04-16 13:40:55
【问题描述】:

我试图在一个简单的 spring-boot 项目上测试 this maven 插件。但是我遇到了 mojo 参数的问题,当我使用包含“-”的参数和目标时,它似乎不起作用:

$ mvn clean install fabric8:build fabric8:resource \
> -Dfabric8.openshift.enableAutomaticTrigger=false \
> -Dfabric8.enricher.fmp-openshift-imageChangeTrigger.enrichAll=true

但是当我将这些参数作为系统属性放在项目的pom.xml 中时。它们似乎被 maven 插件选中并按预期工作。我这样添加到 pom 中:

  <properties>
    <fabric8.openshift.enableAutomaticTrigger>false</fabric8.openshift.enableAutomaticTrigger>
    <fabric8.enricher.fmp-openshift-imageChangeTrigger.enrichAll>true</fabric8.enricher.fmp-openshift-imageChangeTrigger.enrichAll>
  </properties>

我在这里很困惑。谁能告诉我为什么它在以前的情况下不起作用?是否有某种我们应该遵循的 mojo 参数命名约定?

【问题讨论】:

  • 我认为这不是 Maven 无法识别破折号的问题,而是命令行/shell 解释它的问题。你试过用引号/双引号括起来吗?
  • 你能告诉我如何用引号括起来吗?像这样:-D"fabric8.enricher.fmp-openshift-imageChangeTrigger.enrichAll=true"
  • 试试“-Dfabric8.enricher.fmp-openshift-imageChangeTrigger.enrichAll=true”
  • 尝试使用 M2E 插件从 Eclipse 运行您的 maven 并根据需要传递参数目标?
  • 我正在使用 IntelliJ。 IntelliJ 有替代方案吗?

标签: java maven


【解决方案1】:

我建议你使用一种解决方法(在我看来比调试 maven 更快的解决方案):

<properties>
   <f8.autoTrigger>your_default_here</f8.autoTrigger>
   <f8.enrichAll>your_other_default_here<f8.enrichAll>
   <fabric8.openshift.enableAutomaticTrigger>${f8.autoTrigger}</fabric8.openshift.enableAutomaticTrigger>
   <fabric8.enricher.fmp-openshift-imageChangeTrigger.enrichAll>${f8.enrichAll}</fabric8.enricher.fmp-openshift-imageChangeTrigger.enrichAll>
</properties>

如果你想覆盖你的默认值,你可以像这样调用 maven:

$ mvn clean install fabric8:build fabric8:resource \
> -Df8.autoTrigger=false \
> -Df8.enrichAll=true

它甚至更短:)

【讨论】:

    猜你喜欢
    • 2013-07-29
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2015-02-11
    • 2013-01-16
    • 2019-12-18
    • 2013-01-07
    • 2016-05-06
    相关资源
    最近更新 更多