【问题标题】:Jenkins Subversion Multibranch pipeline cannot find pipelineJenkins Subversion Multibranch 管道找不到管道
【发布时间】:2016-10-26 15:47:45
【问题描述】:

我正在尝试在 Jenkins 中设置一个使用 Subversion 的多分支项目。我提供了一个带有主干、标签和分支文件夹的 Subversion URL,例如 http:///mysvn/mysvnproject

Branch Indexing Log 成功,显示类似于

检查候选分支 /mysvnproject/trunk@181182 遇到 标准分支的计划构建:主干完成:成功

这表明 Jenkins 能够找到我的Jenkinsfile。当我删除此文件时,分支索引失败。

当我开始构建时,它会失败并显示类似于

的消息

[错误] 你指定的目标需要一个项目来执行,但那里 此目录中没有 POM (/opt/jenkins/workspace/myproject_trunk-2VTWI7CSGJKGC5PD7FA5VNZ27SJLDDFKIGYZO5K5N23XXZU7MEJA)。 请确认您从正确的目录调用了 Maven。 -> [帮助 1]

当我检查服务器上的工作区时,我可以看到创建了三个目录

drwxr-xr-x 2 jenkins jenkins  6 25 okt 11:56 myproject_trunk-2VTWI7CSGJKGC5PD7FA5VNZ27SJLDDFKIGYZO5K5N23XXZU7MEJA
drwxr-xr-x 5 jenkins jenkins 78 25 okt 11:56 myproject_trunk-2VTWI7CSGJKGC5PD7FA5VNZ27SJLDDFKIGYZO5K5N23XXZU7MEJA@script
drwxr-xr-x 2 jenkins jenkins  6 26 okt 07:08 myproject_trunk-2VTWI7CSGJKGC5PD7FA5VNZ27SJLDDFKIGYZO5K5N23XXZU7MEJA@tmp
  • 第一个目录是空的,不是 Subversion 工作副本。
  • 第二个目录(以@script 结尾)是一个Subversion 工作副本,它包含trunkpom.xml 的内容。
  • 最后一个目录是空的,也不是 Subversion 工作副本。

Jenkins 尝试在空目录中运行构建

#!groovy

node ('master') {

  stage 'Compile'
  env.PATH = "${tool 'Maven 3.2.5'}/bin:${env.PATH}"

  sh 'mvn clean install -DskipTests' 
}

解决此问题的方法是 cd 进入每个 sh 中的脚本目录,例如使用

sh 'cd ../*@script && mvn install -DskipTests' 

但这不应该是必要的..?

为什么这不能马上工作?

【问题讨论】:

    标签: jenkins jenkins-pipeline jenkins-workflow


    【解决方案1】:

    checkout scm 放入您的 Jenkinsfile 将使用源代码填充您的空管道目录。

    【讨论】: