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

发布于 2025-01-01 07:21:17 字数 927 浏览 0 评论 0原文

我们在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薄荷港 2025-01-08 07:21:17

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

我创建了一个基本的 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") returned null 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?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文