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。
干杯
- 在Eclipse中调试期间,是否可以跳转到一行并在调试期间执行它?
- 使用Selenium WebDriver的sendKeys()时出错。无法解析Java.lang.CharSequence
- 在Eclipse和Java中使用m4宏
- 无法初始化类com.amazonaws.partitions.PartitionsLoader
- IntelliJ NoClassDefFoundError用于其他模块中的jar依赖项
- Eclipse,Java:如何以zip格式导入库?
- 使用Maven生成Eclipse项目文件
- Eclipse,Subclipse 1.8.2,SVN 1.7.0要求密码每个动作
- Eclipse中找不到Maven选项