如何在 Maven 2 exec 插件的参数中使用空格
Posted
技术标签:
【中文标题】如何在 Maven 2 exec 插件的参数中使用空格【英文标题】:How to use space in arguments for Maven 2 exec plugin 【发布时间】:2011-06-10 15:21:27 【问题描述】:相关问题:Maven Exec Plugin not reading configuration
在我的配置中,我需要一个文件路径参数。通过在 POM 中用引号将参数括起来,我发现了一个相当“脏”的解决方法(“脏”是因为参数将通过这些引号传递给 main 方法,它们必须在代码中再次删除)。
<configuration>
<executable>java</executable>
<arguments>
<argument>"path to file"</argument>
</arguments>
</configuration>
但是我没有找到将路径作为命令行参数传递的解决方案:
>mvn exec:java -Dexec.args="path to file"
【问题讨论】:
【参考方案1】:一般来说,如果参数值中有空格,maven 要求整个参数都被引用。
mvn exec:java "-Dexec.args=path to file"
【讨论】:
【参考方案2】:在命令行中,您可以尝试使用单引号(但我不确定它是否有效),例如:
>mvn exec:java -Dexec.args="'path to file' arg2 arg3"
【讨论】:
我在 Windows 上尝试过但没有成功。 (在 Linux 上,文件/路径名中不允许有空格 :-) 在 mac os 上也失败了。不知道答案为什么要回答? 在 Linux 上为我工作! ;-) 适用于 Mac OS X El Captain 10.11.6、Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)【参考方案3】:使用-Dexec.args="'space parameter' normalparameter 'one more space parameter'"
我已经在 Windows 上试过了,它可以工作。
【讨论】:
【参考方案4】:如果你想在命令行中尝试:$ mvn exec:java -Dexec.args="path\ to\ file arg2 arg3"
【讨论】:
【参考方案5】:试试-Dexec.arguments="path to file"
(而不是-Dexec.args="path to file"
)
Check here for details.
【讨论】:
以上是关于如何在 Maven 2 exec 插件的参数中使用空格的主要内容,如果未能解决你的问题,请参考以下文章
使用 Exec Maven 插件分叉 Java,而不使用 `exec` 目标