我在我的maven.properties文件中有以下行。Java无法读取pom变量
MY_VARIABLE = www.google.com
我的POM文件的代码如下所示
<build>
<pluginManagement>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.16</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<includes>
<include>**/*Test*.java</include>
<include>**/*Tests*.java</include>
<include>**/Test*.java</include>
</includes>
<files>
<file>src/test/resources/maven.properties</file>
</files>
<systemPropertyVariables>
<message>${MY_VARIABLE}</message>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
</plugin>
</plugins>
</pluginManagement>
</build>
最后我有一段代码来检索在消息变量的值。
public static String getMsg()
{
final String msg = System.getProperty("message");
if (StringUtils.isEmpty(msg) || url.startsWith("${"))
{
return "Empty message";
}
return msg;
}
因此,当我调用getMsg()方法时,它始终将msg的值作为空消息返回。
它在pom.xml声明中出现了一些错误,或者它在使用的getMsg()函数中存在一些问题。
这将是很好的人可以抛出一些光。
在此先感谢....
我这里有一个疑问,因为MY_VARIABLE在maven.properties文件,该文件是在另一个目录中(src /测试/资源),如果我直接这样做将它不会引发错误声明.. 我如何导航到目录? – Ram 2014-10-20 11:33:03
一个问题可能是您使用错误的插件进行单元测试。来自maven站点“Failsafe插件旨在运行集成测试,而Surefire插件旨在运行单元测试。”如果您打算运行单元测试,则可能需要更改为Surefire插件。 – 2014-10-20 11:47:05
感谢您的回复,但它不能与surefire插件一起工作.. :( – Ram 2014-10-20 11:51:05