【发布时间】:2014-12-16 05:15:30
【问题描述】:
您好,我正在开发一个 java maven 项目,我必须在 pom.xml 文件中定义一些变量。
我在 pom.xml 文件中定义了如下变量。
<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.value 变量,我使用了以下 Java 代码。
String testdata = System.getProperty("my.value");
System.out.println(testdata);
但即使我设置了变量的值,控制台输出也总是显示null。
谁能指出这里有什么问题?
提前致谢。
编辑:我也尝试在maven-failsafe-plugin 下声明systemPropertyVariables,但没有任何变化。
注意:当我尝试如下转换testdata行代码时,
String testdata = System.getProperty("my.value").toString();
我在上面一行得到一个 NullPointer 异常。
编辑:很抱歉之前将此作为答案发布..
我正在使用您提供的插件.../plugin 代码将它作为 JUnit 测试运行,但这是我的控制台输出..
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 文件中检索的内容,而我所写的条件是
如果变量中的值没有以 ${ 开头,则返回 localhost:8080 否则返回 url。
所以如果你能指出我这里有什么问题
【问题讨论】:
-
我从未听说过从你的 pom.xml 中访问变量。 Maven 是一个构建系统,与运行代码无关。除非您在谈论从 Maven 触发的测试?
-
@ScaryWombat 我正在为移动自动化运行 JUnit 测试。
标签: java eclipse windows maven pom.xml