无法访问Maven的pom.xml中设置的属性,System.getProperty返回null

时间:2013-07-16 08:58:29

标签: java maven properties junit

我尝试在我的pom.xml中设置属性,并在我的jUnit测试期间访问它们。 我想要读取它们的类是由jUnit Test.java导入并正在使用 String prop = System.getProperty("target1"); 但它总是为空。我在pom.xml中尝试过的内容:

...
<profiles>
    <profile>
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <target1>2948</target1>
        </properties>
    </profile>
</profiles>

以及

...
<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-failsafe-plugin</artifactId>
   <version>2.15</version>
   <systemPropertyVariables>
      <target2>2948</target2>
   </systemPropertyVariables>
   <systemProperties>
     <property>
        <name>target3</name>
        <value>2948</value>
     </property>
   </systemProperties>
...
</configuration>
...     

我确实有一个父pom.xml,但这不是问题吗? 我正在使用Netbeans并通过在pom.xml上点击“Test File”来启动测试

谢谢你们:)

1 个答案:

答案 0 :(得分:1)

我不知道maven-failsafe-plugin,但我可以通过在maven-surefire-plugin中添加属性和值来获得结果,因为这是maven项目中junit测试所使用的。以下是详细说明:Specify system property to Maven project

来自maven网站(http://maven.apache.org/surefire/maven-failsafe-plugin/) - “Failsafe插件旨在运行集成测试,而Surefire插件旨在运行单元测试”。由于您运行的是junit,因此应将属性添加到surefire插件。