【发布时间】: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 工作副本,它包含trunk和pom.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