在IntelliJ中将-D Java选项传递给mvn安装没有效果,传递属性会有效果-为什么?
在IntelliJ中将-D Java选项传递给mvn安装没有效果,传递属性会有效果-为什么?,java,maven,intellij-idea,Java,Maven,Intellij Idea,javaman页面指定 java [options] classname [args] 及 标准选项 -Dproperty=value设置系统属性值。属性变量是一个字符串,不包含表示属性名称的空格。 value变量是一个字符串,表示 财产。如果值是带空格的字符串,则将其括在 引号(例如-Dfoo=“foo bar”) 当我在IntelliJ中配置Maven时(首选项>构建、执行、部署>构建工具>Maven>Runner),它允许我设置 虚拟机选项 环境变量 性质 添加属性时,会弹出一个对
java
man
页面指定
java [options] classname [args]
及
标准选项
-Dproperty=value设置系统属性值。属性变量是一个字符串,不包含表示属性名称的空格。
value变量是一个字符串,表示
财产。如果值是带空格的字符串,则将其括在
引号(例如-Dfoo=“foo bar”
)
当我在IntelliJ中配置Maven时(首选项>构建、执行、部署>构建工具>Maven>Runner),它允许我设置
- 虚拟机选项
- 环境变量
- 性质
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
i、 e.java选项类名称更多选项和主题
由此看来,IntelliJ将属性作为参数添加到类中(huh?),而VM选项作为选项传入(如预期的那样)
现在,在单元测试中,我添加了
Properties properties = System.getProperties();
properties.list(System.out);
它只打印property=value
,而不打印jvm=option
为什么VM选项(在IntelliJ中设置)没有传递到我的测试中,为什么属性(似乎是IntelliJ作为参数传递的)一直传递到单元测试级别?为什么在IntelliJ的Add对话中它被称为“Maven属性”,而不是系统属性?(这是观察到的行为的原因的线索吗?您的测试与Maven不在同一个JVM中运行。由Maven启动以运行测试的JVM不会继承传递给Maven JVM的VM选项(这是预期的,也是设计要求的)。