Jenkins在运行Maven作业时传递参数的多配置
我正在尝试为我的项目的selenium测试设置一个Jenkins多配置作业,该测试在多个浏览器上运行。我检查了不同的选项,多配置作业似乎很适合,但我无法让maven将参数正确地传递给maven 我有几个参数需要传递给maven,主要是browserName和appDomain,还有一个概要文件来运行测试。要配置作业,请执行以下操作:Jenkins在运行Maven作业时传递参数的多配置,maven,continuous-integration,jenkins,Maven,Continuous Integration,Jenkins,我正在尝试为我的项目的selenium测试设置一个Jenkins多配置作业,该测试在多个浏览器上运行。我检查了不同的选项,多配置作业似乎很适合,但我无法让maven将参数正确地传递给maven 我有几个参数需要传递给maven,主要是browserName和appDomain,还有一个概要文件来运行测试。要配置作业,请执行以下操作: 定义将从中检出代码的SVN存储库 将browserName设置为用户定义轴,值为FIREFOX、CHROME、IE 创建一个类型为“Invoke-top-leve
- 定义将从中检出代码的SVN存储库
- 将browserName设置为用户定义轴,值为FIREFOX、CHROME、IE
- 创建一个类型为“Invoke-top-levelmaven-targets”的构建步骤,这里是我遇到问题的地方。此部分的配置不同于其他工作类型,通常有一个名为“目标和选项”的字段,用于放置所有内容,但在本例中,它被划分为不同的字段。所以我不知道属性和配置文件到底放在哪里 a) 逻辑上,我将目标放在目标字段中,参数和选项放在属性字段中,如图所示:
/opt/apache-maven-2.2.1/bin/mvn -DbrowserName=CHROME "-D-Dappdomain=0 -Dtestenv=test -Drc=true -DsuiteXmlFile=testOne.xml -U -Dapp.instance.key=jenkins -Denv=default" clean verify -Pwebtests
例外情况是:
[INFO] [enforcer:enforce {execution: enforce-property}]
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireProperty failed with message:
You must pass the appdomain as parameter! Example: -Dappdomain=20
[WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireProperty failed with message:
You must pass the test environment as parameter! Example: -Dtestenv=beta
因此,不获取属性也是如此
c) 最后,如果我将所有内容都放在“目标”字段中,我会得到以下例外情况:
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] One or more required plugin parameters are invalid/missing for 'property:merge'
[0] Inside the definition for plugin 'property-maven-plugin' specify the following:
<configuration>
...
<environment>VALUE</environment>
</configuration>
-OR-
on the command line, specify: '-Denv=VALUE'
[ERROR]生成错误
[信息]------------------------------------------------------------------------
[信息]属性:合并的一个或多个必需插件参数无效/缺失
[0]在插件“property maven plugin”的定义中指定以下内容:
...
价值
-或-
在命令行上,指定:'-Denv=VALUE'
我尝试了一个正常的和参数化的工作,工作非常完美
Jenkins版本是:1454,Maven版本是2.2.1,我发现Jenkins机器没有正确配置。我在另一个实例中进行了尝试,对以下配置都很好:
-Goals: clean verify Pwebtests
-Paramenters: (properties file format)
appDomain=0
testenv=test
env=default
....
作为旁注,其他的工作之所以有效,是因为它们使用了Jenkins Maven插件,它似乎使用java来启动一个调用Maven的Hudson类,而不是直接调用mvn命令,这是当“调用顶级Maven目标”类型的构建步骤时会发生的情况。您是否有可能使用插件(即已安装)?我想,但我不确定,我明天会确认。但这不应该影响所有的工作类型吗?有多个工作运行相同的maven目标,它们正常工作。只是我将插件从v1.30升级到最新版本,并开始出现矩阵构建问题。我最终将其降级。很可能它与y无关我们的问题,但值得检查(因为您的问题也与设置环境有关),除非您得到更明确的答案。已确认,没有Envinjet插件…对此我仍然感到困惑…禁用?没有安装Envinjet插件