我正在使用maven并且有一个系统属性列表-DA=alpha
,-DB=beta
-DS=random_stuff
我希望在maven运行时传递给单元测试,而不能进入pom
个文件。
Surefire和Failsafe插件基本上都说您可以通过-DargLine
系统属性传递值来将值传递给测试。
通常它在pom.xml
中定义,例如
<argLine>-DA=alpha -DB=beta -DS=random_stuff</argLine>
但我也看到了从命令行传入-DargLine=...
的示例。
我认为我需要在argLine
通过-DargLine="-DA=alpha -DB=beta -DS=random_stuff"
传递系统属性的引号,因为它们是空格分隔的:
MAVEN_OPTS
现在我想通过argLine
环境变量传递它们(它还“携带”其他系统属性,而不仅仅是MAVEN_OPTS="-Dxyz=abc ... -DargLine=\"-DA=alpha -DB=beta -DS=random_stuff\""
)。到目前为止我所拥有的是:
argLine
换句话说,我逃脱了-DS
的引用。不幸的是,结尾引用现在被视为S
值的一部分,即random_stuff"
现在被A
取代 - 而不是我想要的。
如何做我想做的事情,即确保B
,S
和argLine
作为argLine
的一部分传入,并传递{{ 1}}作为MAVEN_OPTS
的一部分?
PS:我也厌倦内部单引号(同样无法使用的结果:some_stuff'
)和unescaped inner double quotes(MAVEN_OPTS=" ... -DargLine="-DA=alpha ...""
,导致在尝试获取.bash_profile
时出错,两者都有不成功...