Java无法从pom读取变量

我的maven.properties文件中有以下行。

MY_VARIABLE = www.google.com 

我的pom文件代码如下所示

      src/test/resources true     org.apache.maven.plugins maven-failsafe-plugin 2.16   validate  read-project-properties    **/*Test*.java **/*Tests*.java **/Test*.java   src/test/resources/maven.properties   ${MY_VARIABLE}       org.apache.maven.plugins maven-surefire-plugin 2.16     

最后我有一段代码来检索消息变量中的值。

  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}  

systemPropertyVariables用于Surefire插入,用于unit testing

我前段时间遇到过这个问题。 我不知道它是否是故障保护/ maven错误或限制。 我发现的解决方案是将变量设置为VM参数。 以下是它目前对我有用的方式:

更新你的pom如下:

   maven-failsafe-plugin 2.17  -DMY_VARIABLE=${MY_VARIABLE}    test  integration-test verify     

然后,您可以调用maven来运行集成测试,如下所示:mvn integration-test -DMY_VARIABLE = http://www.google.com

谢谢大家帮忙..

我找到了一种方法来完成这项工作。

在我开始测试之前,在我使用的java文件中

  System.setProperty("message" , "welcome message"); 

这最终打印出值而不是null。

干杯