将-D Java选项传递给IntelliJ中的mvn install无效,传递属性 - 为什么?

时间:2017-07-24 15:57:36

标签: java maven intellij-idea

java man页面指定

java [options] classname [args]

details

  

标准选项

     

...

     

-D property = value 设置系统属性值。 property变量是一个没有空格的字符串,表示属性的名称。   value变量是一个表示值的字符串   属性。如果value是带空格的字符串,则将其括起来   引号(例如-Dfoo="foo bar")。

当我在IntelliJ中配置Maven时(首选项>构建,执行,部署>构建工具> Maven> Runner),它允许我设置

  • VM选项
  • 环境变量
  • 属性

添加“属性”时,会弹出一个对话框,允许我选择添加Maven属性"。

从上面的java man页面摘录判断,我希望IntelliJ将属性键值对转换为-Dkey=value个选项。

然而,当maven由IntelliJ运行时,第一行控制台输出基本归结为:

/path/to/java
 -Dvm=option
 -classpath /path/to/apache-maven/boot/plexus-classworlds-2.5.2.jar
org.codehaus.classworlds.Launcher
 -Dproperty=value
install -P selectedProfiles

即。 java options classname someMoreOptionsAndTheArguments

从那以后,IntelliJ似乎将 属性 作为参数添加到类中(呵呵?),而 VM选项 作为选项传递(如预期的那样)。

现在,在单元测试中,我添加了

Properties properties = System.getProperties();
properties.list(System.out);

它只打印property=value但不打印jvm=option

为什么是VM选项(在IntelliJ中设置)没有传递给我的测试,为什么属性(似乎由IntelliJ作为参数传入)使它一直到单元测试水平?为什么在IntelliJ的添加对话框中称它为“Maven Property"”,而不是系统属性? (这是观察行为原因的线索吗?)

0 个答案:

没有答案