使用Jenkins 1.501和Jenkins Git插件1.1.26
我有3个不同的git仓库,每个都有多个项目。
现在,我需要将3git代码库中的所有项目签出到Jenkins slave上的同一工作区中。我在源代码管理: Multiple SCMs中定义了每个git存储库。但每次签出存储库时,以前的存储库(及其相关项目)都会被删除。
我读过这篇文章:
http://jenkins.361315.n4.nabble.com/multiple-git-repos-in-one-job-td4633300.html
但这并没有真正的帮助。我尝试为所有存储库(可选)指定本地子目录下的相同文件夹,但它给出了相同的结果。
如果使用Jenkins根本不可能做到这一点,我想可以使用一些预先构建的步骤/脚本来将项目移动到正确的位置。它不是一个修改项目构建配置的选项。
发布于 2013-02-13 08:14:01
使用Jenkins + Git插件无法在单个工作区中同时检出多个存储库。
作为一种解决办法,您可以有多个上游作业,每个作业签出一个存储库,然后复制到最终项目工作区(在许多级别上都有问题),或者您可以设置一个shell脚本步骤,在构建时将每个需要的存储库签出到作业工作区。
以前,多个SCM插件可以帮助解决这个问题,但现在它已被弃用。在Multiple SCM plugin页面中:“用户应该迁移到https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin。Pipeline提供了一种更好的方法来检出多个SCM,并得到了Jenkins核心开发团队的支持。”
发布于 2013-06-28 21:20:44
使用多SCM插件:
“第二个高级菜单”不再存在,需要做的是使用“添加”按钮(在“附加行为”部分),并选择“签出到一个子目录”。
希望这能有所帮助。
发布于 2017-04-07 16:39:29
因为Multiple SCMs Plugin已被弃用。
使用Jenkins Pipeline可以签出多个git代码库,并在使用gradle构建它之后
node {
def gradleHome
stage('Prepare/Checkout') { // for display purposes
git branch: 'develop', url: 'https://github.com/WtfJoke/Any.git'
dir('a-child-repo') {
git branch: 'develop', url: 'https://github.com/WtfJoke/AnyChild.git'
}
env.JAVA_HOME="${tool 'JDK8'}"
env.PATH="${env.JAVA_HOME}/bin:${env.PATH}" // set java home in jdk environment
gradleHome = tool '3.4.1'
}
stage('Build') {
// Run the gradle build
if (isUnix()) {
sh "'${gradleHome}/bin/gradle' clean build"
} else {
bat(/"${gradleHome}\bin\gradle" clean build/)
}
}
}
您可能希望考虑使用git submodules,而不是像这样的自定义管道。
https://stackoverflow.com/questions/14843696
复制相似问题