我们如何将参数值从Jenkins作业传递到pom.xml,然后传递给JAVA代码中的系统属性?

时间:2015-06-28 15:06:38

标签: java maven jenkins

我的问题可能看起来有点容易回答,但我无法解决这个问题。

我正在开发一个项目,我已为我的构建配置了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代码中传递给我的系统属性。 (这对我不起作用)

1 个答案:

答案 0 :(得分:2)

jenkins中的环境属性不是JVM的系统属性。要设置属性,您需要使用命令行进行设置。 export BROWSER =chrome 要么 您可以在jenkins构建配置的This build is parameterized部分进行设置。