我的问题可能看起来有点容易回答,但我无法解决这个问题。
我正在开发一个项目,我已为我的构建配置了Jenkins作业。
到目前为止,我所做的是我已经完成了一个配置了pom.xml路径并且有两个目标“干净测试”的maven作业。当我运行它时效果很好。
现在我想从Jenkins传递Paramter值BROWSER
,它可能具有类似Firefox,Chrome的价值,我希望它传递给java代码,以便特定浏览器可以打开。
我在代码中使用了系统属性:
protected static final String BROWSER = System.getProperty("BROWSER","chrome");
现在我想将值从jenkins传递给pom然后传递给java代码。
这是我的pom错误:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<systemPropertyVariables>
<BROWSER>${env.BROWSER}</BROWSER>
</systemPropertyVariables>
</configuration>
</plugin>
但在这里它给我的错误如cannot resolve symbol env.BROWSER
解决方法: 作为一种解决方法,我在Jenkins目标中使用了这样的命令:
clean test -DREMOTE_DRIVER=${REMOTE_DRIVER} -DSELENIUM_HOST=${SELENIUM_HOST} -DBROWSER=${BROWSER}
但我认为这不是理想的做法。
我已经在我的Jenkins构建参数名称 - “BROWSER”中创建了参数,并选择了'firefox''cron'和'ie'。
现在我只需在pom中调用它(我使用$ {env.BROWSER})然后在java代码中传递给我的系统属性。 (这对我不起作用)
答案 0 :(得分:2)
jenkins中的环境属性不是JVM的系统属性。要设置属性,您需要使用命令行进行设置。
export BROWSER =chrome
要么
您可以在jenkins构建配置的This build is parameterized
部分进行设置。