方案:2个构建同时运行。该配置被设置为允许并发构建。
我正在寻找最可能的发现原因,即WORKSPACE
变量似乎可用,因此项目的克隆起作用。以后发生的任何构建
似乎提供了值********
而不是分配给WORKSPACE变量的值。
请阅读以获取详细信息。
实例化的第一个构建包含git克隆项目的正确路径:
从git clone --branch
开始查看命令。
[INFO]执行中:/ bin / sh -c cd / var / lib / jenkins / jobs / myapp-build-job / workspace / target && git clone --branch app-00.00.00.002 file:/// var / lib / jenkins / jobs / myapp-build-job / workspace / var / lib / jenkins / jobs / myapp-build-job / workspace / target / checkout
在以下日志中发现的问题:
向前查看命令git clone --branch
,注意其中的星号。 WORKSPACE是詹金斯(Jenkins)提供的变量,在我看来,这份工作的价值为/var/lib/jenkins/jobs/myapp-build-job/workspace
。
如果使用分配给WORKSPACE变量的值将下面日志中的*******
替换为/var/lib/jenkins/jobs/myapp-build-job/workspace@2/target/checkout
。这将是项目应克隆到的corrct目录。
因此,不会发生该错误。
[INFO]执行中:/ bin / sh -c cd / var / lib / jenkins / jobs / myapp-build-job / workspace @ 2 / target && git clone --branch app-00.00.00.002文件:** ****** @ 2 / target / checkout
[错误]无法在项目应用程序上执行目标org.apache.maven.plugins:maven-release-plugin:2.5.3:perform(default-cli):无法执行本地签出-> [帮助1]
答案 0 :(得分:0)
我最初认为这可能与詹金斯不将变量注入后续版本有关。
脱发很多之后,我发现@
符号是默认的分隔符,当包含在路径中时,它不会被转义。这就是为什么我看到****
更改默认的分隔符值。
在jenkins服务器上,
debian:打开文件/etc/default/jenkins
RHEL:打开文件/etc/sysconfig/jenkins
找到变量JENKINS_JAVA_OPTIONS
向其中添加以下内容-Dhudson.slaves.WorkspaceList=SomeSeperatingName
当然,SomeSeperatingName
可以是您想要的任何东西。只是不需要逃脱的角色
然后,重新启动詹金斯