Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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 无法确定withEnv在文件中执行的操作_Jenkins_Jenkins Pipeline_Jenkins Plugins_Jenkins Groovy - Fatal编程技术网

Jenkins 无法确定withEnv在文件中执行的操作

Jenkins 无法确定withEnv在文件中执行的操作,jenkins,jenkins-pipeline,jenkins-plugins,jenkins-groovy,Jenkins,Jenkins Pipeline,Jenkins Plugins,Jenkins Groovy,我刚开始写这个文件。我正在查看以下两个URL,以了解如何构建Java应用程序,将其推送到Nexus,然后调用Ansible进行部署 在第二个链接中,多次提到以下内容,我无法理解其功能: withEnv(["PATH+MAVEN=${tool 'm3'}/bin"]) 我从网络上可以发现,withEnv用于创建/覆盖环境变量。但是${tool'm3'}/bin在做什么?通常,withEnv的语法是VARIABLE\u NAME=value/expression,${}将命令/变量替换到GSt

我刚开始写这个文件。我正在查看以下两个URL,以了解如何构建Java应用程序,将其推送到Nexus,然后调用Ansible进行部署

在第二个链接中,多次提到以下内容,我无法理解其功能:

withEnv(["PATH+MAVEN=${tool 'm3'}/bin"])

我从网络上可以发现,
withEnv
用于创建/覆盖环境变量。但是
${tool'm3'}/bin
在做什么?通常,
withEnv
的语法是
VARIABLE\u NAME=value/expression
${}
将命令/变量替换到GString中。请参见groovy文档中的字符串插值 从外观上看,可以安全地假设
工具“m3”
正在返回安装路径,然后附加/bin

所以最终的结果是


PATH+MAVEN=/my/PATH/to/m3/etc/bin

除了@metalisticpain的回答之外,Jenkins服务器本身的一些后台配置配置配置了要使用的安装路径

假设您在Jenkins服务器上安装了
jdk-1.8.0
作为工具名,那么它可以在Jenkins文件中使用,例如在您的示例中:

withEnv(["PATH+JDK=${tool 'jdk-1.8.0'}/bin"])
摘自上面链接的文档:

必须在管理Jenkins下的Jenkins中预先配置工具名称→ 全局工具→ 配置