我们在 pom.xml 中的 Maven 编译器插件定义中指定了一堆系统属性:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>
<systemProperties>
<systemProperty>
<key>aKey</key>
<value>aValue</value>
</systemProperty>
</systemProperties>
<!-- ....etcetera.... -->
执行 jar 时会自动加载这些
Maven 如何为系统属性创建这种自动加载行为?我想了解这种行为的实际实现。
这不是我所期望的行为(除非我误解了你)。编译时系统属性不应在运行时保留。
我创建了一个基本的maven项目,它只打印出系统属性,它不包含插件配置中指定的系统属性。
即使编译器插件配置与您的相同,System.getProperties().getProperty("aKey")
也会在运行时返回null
。
运行的任何其他插件可能会产生影响吗?您如何访问系统属性?