【发布时间】:2021-09-06 03:36:42
【问题描述】:
我正在使用 jenkins jobDSL 插件从 groovy 脚本生成我的管道作业,我正在尝试在以下行中创建一个 multibranchPipelineJob
17 multibranchPipelineJob("projects/${project_name}/${component_name}") {
18 branchSources {
19 branchSource {
20 source {
21 git {
22 remote(component.repository)
23 credentialsId(component.credentials)
24 traits {
25 branchDiscoveryTrait()
26 cleanBeforeCheckoutTrait()
27 }
28 }
29 }
30 strategy {
31 defaultBranchPropertyStrategy {
32 props {
33 }
34 }
35 }
36 }
37 }
38 triggers {
39 periodic(5)
40 }
41 orphanedItemStrategy {
42 discardOldItems {
43 // numToKeep(20)
44 }
45 }
46 if (component.jenkinsfile) {
47 factory {
48 workflowBranchProjectFactory {
49 scriptPath(component.jenkinsfile)
50 }
51 }
52 }
53 }
当执行此代码的主管道作业运行时,它会引发此(显然知道)错误:
错误:找到多个提供方法的扩展 带有参数 [] 的 branchDiscoveryTrait: [[com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait, jenkins.plugins.git.traits.BranchDiscoveryTrait, org.jenkinsci.plugins.github_branch_source.BranchDiscoveryTrait]]
我搜索并看到很多结果,人们说我们应该将 @Symbol 注释添加到 traits 实现或相关描述符中。
但我不明白该做什么以及将 @Symbol 放在哪里,人们似乎说它解决了问题,但没有一个很好的解释和指导来应用修复。
应该在插件代码中还是其他地方进行修改?
【问题讨论】:
标签: jenkins jenkins-pipeline jenkins-plugins jenkins-groovy jenkins-job-dsl