sor*_*oru 5 linux windows maven jenkins jenkins-pipeline
我有一个Maven构建的Java应用程序,可以通过键入相同的命令在Linux或Windows上成功运行mvn install.
但是,使用Jenkinsfile方法设置此构建,在Linux上该文件需要包含sh mvn install和在Windows上bat mvn install.
如果在Windows上正确配置了路径和工具,则日志显示:
[Pipeline] sh
[C:\tools\jenkins\workspace\DSL\master] Running shell script
sh: C:\tools\jenkins\workspace\DSL\master@tmp\durable-60527040\script.sh: command not found
Run Code Online (Sandbox Code Playgroud)
有没有办法让单个Jenkinsfile允许在两个环境中构建?
小智 6
管道脚本可以包含groovy代码,因此if允许分支.您可以使用System.properties['os.name']并根据结果测试您的环境,使用sh或bat:
node {
def os = System.properties['os.name'].toLowerCase()
echo "OS: ${os}"
if (os.contains("linux")) {
sh "mvn install"
} else {
bat "mvn install"
}
}
Run Code Online (Sandbox Code Playgroud)