Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins在运行Maven作业时传递参数的多配置_Maven_Continuous Integration_Jenkins - Fatal编程技术网

Jenkins在运行Maven作业时传递参数的多配置

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

我正在尝试为我的项目的selenium测试设置一个Jenkins多配置作业,该测试在多个浏览器上运行。我检查了不同的选项,多配置作业似乎很适合,但我无法让maven将参数正确地传递给maven

我有几个参数需要传递给maven,主要是browserName和appDomain,还有一个概要文件来运行测试。要配置作业,请执行以下操作:

  • 定义将从中检出代码的SVN存储库
  • 将browserName设置为用户定义轴,值为FIREFOX、CHROME、IE
  • 创建一个类型为“Invoke-top-levelmaven-targets”的构建步骤,这里是我遇到问题的地方。此部分的配置不同于其他工作类型,通常有一个名为“目标和选项”的字段,用于放置所有内容,但在本例中,它被划分为不同的字段。所以我不知道属性和配置文件到底放在哪里

    a) 逻辑上,我将目标放在目标字段中,参数和选项放在属性字段中,如图所示:

在这种情况下,作业正常运行而不执行测试,因为配置文件未执行

b) 如果我将概要文件放在Goals字段中,那么日志中的maven调用是:

/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插件