Jenkins:从多分支管道复制工件

Nav*_*nth 3 jenkins jenkins-plugins jenkins-pipeline

我是 Jenkins 的新手,我在 Bitbucket 中有 4 个 repo,比如 A、B、C、D。我必须获取 A、B 和 C 存储库,使用gradle build构建它们,这将产生战争。现在我必须在 D\warsFolder 中复制这些战争我已经创建了 Multibranch 管道并生成了从 git 获取 A、B 和 C 并构建它们的管道语法。看起来像这样

    node {
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'A']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'id', url: 'http://.../A.git']]])
    dir('A') {
        bat 'gradle build -i --info --stacktrace --debug'
    }
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'B']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'id', url: 'http://.../B.git']]])
    dir('B') {
        bat 'gradle build -i --info --stacktrace --debug'
    }
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'C']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'id', url: 'http://.../C.git']]])
    dir('C') {
        bat 'gradle build -i --info --stacktrace --debug'
    }

    }
Run Code Online (Sandbox Code Playgroud)

在 Jenkinsfile 中添加了上述脚本,我将其放置在 A repo 中。

现在我已经创建了一个 Multibranch 管道Fetch_all并在分支源 -> 单一存储库和分支 -> 存储库 URL 我添加了http://.../A.git(其中包含 Jenkinsfile)。到这里一切正常,我能够获取源代码并构建它们。

我创建了 Freestyle 的新工作,其中 Source Code Management -> Git -> Repository URL 将是http://.../D.git。我试图复制在Fetch_all管道中生成的战争,但在 Build -> Copy artifacts from another project Project Name 不接受 Multibranch 管道。它抛出错误,如

ERROR: Unable to find project for artifact copy: 
This may be due to incorrect project name or permission settings; see help for project name in job configuration.
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

Nav*_*nth 5

Finally got it, when I gave pipeline_name/branchname i.e., Fetch_all/%00 it worked fine.