在Java中读取的POM XML属性变为null

时间:2017-05-27 06:41:07

标签: java maven

我在Netbeans中设置了一个基本的maven Java项目。我在POM.xml文件中创建了一个新属性,并尝试在我的代码中读取它。但是,我一直得到一个null而不是值。我做错了什么?

的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.test</groupId>
        <artifactId>Test</artifactId>
        <version>1.0</version>
    </parent>
    <artifactId>Test</artifactId>
    <packaging>jar</packaging>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <system>ABC</system>
    </properties>
</project>

代码:

package com.test.Test;
public class Test {
    public static void main(String[] args) {
        System.out.println("Creating connection to " + System.getProperty("system") + "...");
    }
}

2 个答案:

答案 0 :(得分:2)

这与Maven无关。

您应该将其设置为JVM参数。然后,您就可以将其读作System.getProperty()

例如,在Eclipse中,您可以在此处的菜单中找到它:

运行 - &gt;运行配置... - &gt;参数 - &gt; VM参数 - &gt;在那里添加属性(不要忘记应用更改):

-Dsystem=ABC

会导致System.getProperty("system")返回ABC

答案 1 :(得分:0)

我认为你能做到这一点的唯一方法就是在项目启动期间使用以下命令来实现这些属性:

&#13;
&#13;
-Dsystem=...
&#13;
&#13;
&#13;