You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins多分支流水线配置copyArtifact权限的正确Groovy语法

问题原因

报错是因为copyArtifactPermissionProperty不属于多分支流水线根节点的properties上下文,该配置是多分支下每个分支任务的属性,需要配置到分支属性策略的属性块中。
多分支流水线的每个分支会生成独立的子任务,Copy Artifact的权限需要继承自分支的公共属性,因此不能在根任务的全局properties里定义。

正确写法

你需要将权限配置放到defaultBranchPropertyStrategy下的props块中,修改后的代码如下:

multibranchPipelineJob("my_project") {
  branchSources {
    branchSource {
      source {
        git {
          remote("my_repo")
          credentialsId(${credential_id})
          traits {
            gitBranchDiscovery()
            cleanBeforeCheckoutTrait {
              extension {
                deleteUntrackedNestedRepositories(false)
              }
            }
          }
        }
      }
      strategy {
        defaultBranchPropertyStrategy {
          props {
            // 在这里添加copyArtifact权限配置
            copyArtifactPermissionProperty {
              projectNames('*')
            }
          }
        }
      }
    }
  }
  triggers {
    periodic(5)
  }
  orphanedItemStrategy {
    discardOldItems {
      // numToKeep(20)
    }
  }
  if ("jenkinsfile") {
    factory {
      workflowBranchProjectFactory {
        scriptPath("jenkinsfile")
      }
    }
  }
}

注意事项

  • 需确保Jenkins已安装Copy Artifact插件,版本不低于1.46,才支持多分支流水线的分支属性配置
  • 如果需要限制特定项目可以拉取制品,把'*'替换为对应项目的名称列表即可,多个项目用逗号分隔:projectNames('projectA', 'projectB')

内容的提问来源于stack exchange,提问作者nixmind

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:36:03