Java:Maven 在编译后的 jar 中的 pom.xml 中设置的系统属性存储在哪里?
我们在 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 如何为系统属性创建这种自动加载行为?我想了解这种行为的实际实施。
We've specified a bunch of system properties in our maven compiler plugin definition within pom.xml:
<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.... -->
These are automatically loaded when the jar is executed
How does Maven create this auto-load behaviour for system properties? I'd like to understand the practical implementation of this behaviour.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这不是我所期望的行为(除非我误解了你)。编译时系统属性不应在运行时保留。
我创建了一个基本的 Maven 项目,它仅打印出系统属性,并且不包含插件配置中指定的系统属性。
即使编译器插件配置与您的配置相同,
System.getProperties().getProperty("aKey")
在运行时返回null
。运行任何其他插件可能会产生影响吗?您如何访问系统属性?
This is not behaviour I would expect (unless I am misunderstanding you). Compile-time system properties should not be persisted at runtime.
I created a basic maven project that just prints out the system properties and it did not contain the system property specified in plugin configuration.
System.getProperties().getProperty("aKey")
returnednull
at runtime even with compiler plugin configured the same as yours.Any other plugins running that might have an effect? How are you accessing the system properties?