无法从pom获取<systemPropertyVariables>variables值

您好我正在一个java maven项目,我必须在pom.xml文件中定义一些variables。

我已经在我的pom.xml文件中定义了一个variables如下。

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <includes> <include>**/*Test*.java</include> <include>**/*Tests*.java</include> <include>**/Test*.java</include> </includes> <systemPropertyVariables> <my.value>NOTNULL</my.value> </systemPropertyVariables> </configuration> </plugin> 

要尝试访问my.valuevariables,我正在使用下面的一段Java代码。

  String testdata = System.getProperty("my.value"); System.out.println(testdata); 

但是,即使设置variables的值,控制台输出始终显示为null

任何人都可以指出这里有什么问题吗?

提前致谢。

编辑:我也试过在maven-failsafe-plugin下声明systemPropertyVariables ,但没有任何改变。

注意 :当我尝试按如下方式转换testdata代码行时,

  String testdata = System.getProperty("my.value").toString(); 

在上面的行我得到一个NullPointerexception。

编辑:对不起,以前发布这个答案..

我正在运行它作为JUnittesting使用您提供的插件… /插件代码,但这里是我的控制台输出..

 21 Oct 2014 12:36:56,973 main INFO s.MyClass - Default Implicit timeout set in Driver to: 100 21 Oct 2014 12:36:56,973 main INFO s.MyClass - Default URL for server is set to: http://localhost:8080 ---- null 

该url是我想从pom.xml文件检索,我写的条件是

如果variables中的值为空以$ {开头,则返回localhost:8080,否则返回url。

所以如果你能指出我在这里有什么问题

JDK 1.6.0_67Windows上运行maven-3.2.3

maven-archetype-quickstart创建一个项目…

添加了相关的pom行…在上面的问题中将确实的例子与特定的行相结合。

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <systemPropertyVariables> <my.value>NOTNULL</my.value> <buildDirectory>${project.build.directory}</buildDirectory> </systemPropertyVariables> </configuration> </plugin> 

AppTest.java中的相关行

 /** * Rigourous Test :-) */ public void testApp() { System.out.println(System.getProperty("my.value")); System.out.println(System.getProperty("buildDirectory")); assertTrue( true ); } 

mvn test相关输出

 ------------------------------------------------------- TESTS ------------------------------------------------------- Running com.mycompany.app.AppTest NOTNULL C:\Users\raghu\Documents\GitHub\mvn-examples\test-properties\target Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec - in c om.mycompany.app.AppTest 

这是github中的项目。

@Raghuram感谢您的帮助。

我有办法解决这个问题。

在我的java文件,在@Before注释,我设置变量的值如下

  System.setProperty("my.value","this value"); 

现在它工作得很好。

干杯。

注意:伙计们,我很抱歉张贴另一个问题作为答案.. 🙁