我有一个 Java 应用程序的 Maven 构建,通过键入相同的命令可以在 Linux 或 Windows 上成功运行mvn install
.
然而,使用Jenkinsfile方法设置此版本时,在 Linux 上该文件需要包含sh mvn install
和在窗户上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
有没有办法让单个 Jenkinsfile 允许在两种环境中构建?
管道脚本可以包含常规代码,因此分支为if
被允许。您可以使用以下命令测试您的环境System.properties['os.name']
并根据结果,使用sh
or bat
:
node {
def os = System.properties['os.name'].toLowerCase()
echo "OS: ${os}"
if (os.contains("linux")) {
sh "mvn install"
} else {
bat "mvn install"
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)