Java:Maven 在编译后的 jar 中的 pom.xml 中设置的系统属性存储在哪里?

问题描述 投票:0回答:1

我们在 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 pom.xml maven-plugin system-properties
1个回答
0
投票

这不是我所期望的行为(除非我误解了你)。编译时系统属性不应在运行时保留。

我创建了一个基本的maven项目,它只打印出系统属性,它不包含插件配置中指定的系统属性。

即使编译器插件配置与您的相同,

System.getProperties().getProperty("aKey")
也会在运行时返回
null

运行的任何其他插件可能会产生影响吗?您如何访问系统属性?

© www.soinside.com 2019 - 2024. All rights reserved.