我在我的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