我正在使用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
我搜索了很多结果,看到人们说我们应该向traits
实现或相关描述符添加@Symbol
注解。
但是我不知道该怎么做,在哪里放置@Symbol
,人们似乎说它解决了这个问题,但没有一个很好的解释和指导来应用修复。
修改应该在插件代码中还是其他地方完成?
2条答案
按热度按时间gupuwyp21#
我通过使用特定的
git
scm类解决了这个问题,正确的语法是:osh3o9ms2#
您需要使用bitbucketBranchDiscovery()而不是branchDiscoveryTrait()