The dependencies in plugin POMs are typically a mess, especially when deep dependency trees are in use, as is typical for Pipeline suite components. The problem is Maven's transitive dependency resolution algorithm, which prefers the "nearest" version, even if it is older than what some other dependency requires. This does not work well for plugin dependencies in particular, and Jenkins 2.19.x and newer will in fact refuse to load plugins which fail to satisfy their dependencies, rather than producing cryptic linkage errors later. You can see this behavior via

      mvn -Djenkins.version=2.19.3 -Dtest=InjectedTest test
      

      Probably the best way forward is to use the Enforcer plugin to require upper bound dependencies. You can try this in a single plugin:

          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-enforcer-plugin</artifactId>
                      <configuration>
                          <rules combine.children="append">
                              <requireUpperBoundDeps/>
                          </rules>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      

      I think andresrc tried adding this to the parent POM before but ran into issues. While it does detect plugin version mismatches, it also detects some problems that are apparently harmless (and currently RequireUpperBoundDeps has no excludes option). In particular I note from workflow-aggregator as an example:

      • jenkins-core depends on com.google.guava:guava:11.0.1, which we would like to retain in plugin test classpaths for fidelity to runtime behavior, yet Stapler depends on 14.0
      • that old Guava depends on com.google.code.findbugs:jsr305:1.3.9, whereas we would prefer Stapler's 2.0.1 (at least)
      • org.kohsuke:github-api depends on com.infradna.tool:bridge-method-annotation:1.14, newer than core
      • net.sourceforge.htmlunit:htmlunit and org.apache.httpcomponents:httpclient depend on commons-logging:commons-logging:1.2, newer than core's 1.1.3
      • org.jenkins-ci.lib:lib-jenkins-maven-embedder, used from org.jenkins-ci.main:jenkins-test-harness, depends on org.apache.ant:ant:1.9.2 while core still uses 1.8.4
      • org.jenkins-ci.lib:lib-jenkins-maven-embedder also uses org.codehaus.plexus:plexus-utils:3.0.10, newer than the 2.1 used by other paths in jenkins-test-harness; there is a similar problem with org.codehaus.plexus:plexus-classworlds 2.4 vs. 2.4.2

      The Stapler-vs.-core conflict probably cannot be resolved in historical core baselines, so we may need to patch the Enforcer to allow an excludes list. Some of the other conflicts look solvable.

          [JENKINS-41631] Use requireUpperBoundDeps in plugin POM

          Jesse Glick created issue -
          Jesse Glick made changes -
          Remote Link New: This issue links to "pipeline-library PR 3 (Web Link)" [ 15371 ]
          Jesse Glick made changes -
          Link New: This issue relates to JENKINS-41827 [ JENKINS-41827 ]
          Daniel Beck made changes -
          Component/s New: plugin-pom [ 21982 ]
          Component/s Original: core [ 15593 ]

          James Nord added a comment -

          Don't we just want upper bounds on other plugins - (aka <packaging>hpi</packaging>) and not other things like libraries (<packaging>jar</packaging>)?

          The upper bounds in libraries seems a little bit whacky - esp as in Jenkins you may not get the upper bound of a library if you have a library used in core (slf4j) and in a plugin...

          This seems to be mostly an issue when running tests with JenkinsRule

          James Nord added a comment - Don't we just want upper bounds on other plugins - (aka <packaging>hpi</packaging> ) and not other things like libraries ( <packaging>jar</packaging> )? The upper bounds in libraries seems a little bit whacky - esp as in Jenkins you may not get the upper bound of a library if you have a library used in core ( slf4j ) and in a plugin... This seems to be mostly an issue when running tests with JenkinsRule

          Jesse Glick added a comment -

          I think in those cases we would want to add an <exclusion> for the transitive library dependency(ies) which we know we do not care about.

          Jesse Glick added a comment - I think in those cases we would want to add an <exclusion> for the transitive library dependency(ies) which we know we do not care about.

          James Nord added a comment -

          does maven support wildcard exclusions yet? last time I looked it didn't which leads to a overly complex pom to do what should be

                  <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                  </exclusion>
          

          James Nord added a comment - does maven support wildcard exclusions yet? last time I looked it didn't which leads to a overly complex pom to do what should be <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion>
          Jesse Glick made changes -
          Assignee New: Jesse Glick [ jglick ]
          Jesse Glick made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]

          Jesse Glick added a comment -

          Example of a test failure that is more easily caught by the enforcer rule:

          $ mvn -f parameterized-trigger-plugin -Dtest=InjectedTest -Djenkins.version=2.32.3 test
          …
          … jenkins.InitReactorRunner$1 onTaskFailed
          SEVERE: Failed Loading plugin Jenkins promoted builds plugin v2.25 (promoted-builds)
          java.io.IOException: Jenkins promoted builds plugin v2.25 failed to load.
           - Token Macro Plugin v1.5.1 is older than required. To fix, install v1.10 or later.
          	at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621)
          	at hudson.PluginManager$2$1$1.run(PluginManager.java:516)
          	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
          	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
          	at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085)
          	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
          	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
          	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          	at java.lang.Thread.run(Thread.java:748)
          … jenkins.InitReactorRunner$1 onTaskFailed
          SEVERE: Failed Loading plugin Pipeline: Supporting APIs v2.13 (workflow-support)
          java.io.IOException: Pipeline: Supporting APIs v2.13 failed to load.
           - Script Security Plugin v1.13 is older than required. To fix, install v1.21 or later.
          	at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621)
          	at hudson.PluginManager$2$1$1.run(PluginManager.java:516)
          	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
          	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
          	at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085)
          	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
          	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
          	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          	at java.lang.Thread.run(Thread.java:748)
          … jenkins.InitReactorRunner$1 onTaskFailed
          SEVERE: Failed Loading plugin Pipeline: Nodes and Processes v2.9 (workflow-durable-task-step)
          java.io.IOException: Pipeline: Nodes and Processes v2.9 failed to load.
           - Pipeline: Supporting APIs v2.13 failed to load. Fix this plugin first.
          	at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621)
          	at hudson.PluginManager$2$1$1.run(PluginManager.java:516)
          	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
          	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
          	at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085)
          	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
          	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
          	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          	at java.lang.Thread.run(Thread.java:748)
          … jenkins.InitReactorRunner$1 onTaskFailed
          SEVERE: Failed Loading plugin Pipeline: Job v2.9 (workflow-job)
          java.io.IOException: Pipeline: Job v2.9 failed to load.
           - Pipeline: Supporting APIs v2.2 failed to load. Fix this plugin first.
          	at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621)
          	at hudson.PluginManager$2$1$1.run(PluginManager.java:516)
          	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
          	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
          	at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085)
          	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
          	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
          	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          	at java.lang.Thread.run(Thread.java:748)
          … jenkins.InitReactorRunner$1 onTaskFailed
          SEVERE: Failed Loading plugin Pipeline: Groovy v2.27 (workflow-cps)
          java.io.IOException: Pipeline: Groovy v2.27 failed to load.
           - Pipeline: Supporting APIs v2.13 failed to load. Fix this plugin first.
          	at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621)
          	at hudson.PluginManager$2$1$1.run(PluginManager.java:516)
          	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
          	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
          	at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085)
          	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
          	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
          	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          	at java.lang.Thread.run(Thread.java:748)
          …
          

          which with the proposed POM update fails earlier and more helpfully:

          --- maven-enforcer-plugin:1.4.2-SNAPSHOT:enforce (display-info) @ parameterized-trigger ---
          Ignoring requireUpperBoundDeps in com.google.code.findbugs:jsr305
          Ignoring requireUpperBoundDeps in commons-logging:commons-logging
          Ignoring requireUpperBoundDeps in com.google.guava:guava
          Rule 5: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps failed with message:
          Failed while enforcing RequireUpperBoundDeps. The error(s) are [
          Require upper bound dependencies error for org.jenkins-ci.plugins:scm-api:0.2 paths to dependency are:
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins:subversion:2.5.7
              +-org.jenkins-ci.plugins:scm-api:0.2
          and
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins.workflow:workflow-cps:2.27
              +-org.jenkins-ci.plugins:scm-api:1.1
          , 
          Require upper bound dependencies error for org.jenkins-ci.plugins:script-security:1.13 paths to dependency are:
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins:matrix-project:1.6
              +-org.jenkins-ci.plugins:script-security:1.13
          and
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins.workflow:workflow-cps:2.27
              +-org.jenkins-ci.plugins:script-security:1.24
          and
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.9
              +-org.jenkins-ci.plugins:script-security:1.25
          and
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins.workflow:workflow-support:2.13
              +-org.jenkins-ci.plugins:script-security:1.21
          , 
          Require upper bound dependencies error for org.apache.ant:ant:1.8.4 paths to dependency are:
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.main:jenkins-core:2.32.3
              +-org.apache.ant:ant:1.8.4
          and
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins:promoted-builds:2.25
              +-org.jenkins-ci.main:maven-plugin:2.0
                +-org.jenkins-ci.main.maven:maven-agent:1.4
                  +-org.apache.ant:ant:1.8.4
          and
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins:promoted-builds:2.25
              +-org.jenkins-ci.main:maven-plugin:2.0
                +-org.jenkins-ci.lib:lib-jenkins-maven-embedder:3.11
                  +-org.apache.ant:ant:1.9.2
          , 
          Require upper bound dependencies error for org.jenkins-ci:symbol-annotation:1.1 paths to dependency are:
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.main:jenkins-core:2.32.3
              +-org.jenkins-ci:symbol-annotation:1.1
          and
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins.workflow:workflow-cps:2.27
              +-org.jenkins-ci.plugins:structs:1.5
                +-org.jenkins-ci:symbol-annotation:1.5
          , 
          Require upper bound dependencies error for org.jenkins-ci.plugins.icon-shim:icon-set:1.0.5 paths to dependency are:
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.main:jenkins-core:2.32.3
              +-org.jenkins-ci.plugins.icon-shim:icon-set:1.0.5
          and
          +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT
            +-org.jenkins-ci.plugins:matrix-auth:1.4
              +-org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3
                +-org.jenkins-ci.plugins.icon-shim:icon-set:2.0.3
          ]
          

          The token-macro problem is not yet getting picked up, because it is an optional dependency of promoted-builds yet a mandatory dependency of conditional-buildstep. Since Maven dependency resolution does not pick up the transitive closure of optional dependencies, Maven only considers there to be one dependency path to token-macro. Jenkins however treats a low version of a dependency as an error for the depending plugin, even in the case of an optional dependency, since the plugin APIs offer no way to obtain a dependency iff it is supposed to be available. So this case remains one that needs to be tested by rerunning InjectedTest.

          Jesse Glick added a comment - Example of a test failure that is more easily caught by the enforcer rule: $ mvn -f parameterized-trigger-plugin -Dtest=InjectedTest -Djenkins.version=2.32.3 test … … jenkins.InitReactorRunner$1 onTaskFailed SEVERE: Failed Loading plugin Jenkins promoted builds plugin v2.25 (promoted-builds) java.io.IOException: Jenkins promoted builds plugin v2.25 failed to load. - Token Macro Plugin v1.5.1 is older than required. To fix, install v1.10 or later. at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621) at hudson.PluginManager$2$1$1.run(PluginManager.java:516) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) … jenkins.InitReactorRunner$1 onTaskFailed SEVERE: Failed Loading plugin Pipeline: Supporting APIs v2.13 (workflow-support) java.io.IOException: Pipeline: Supporting APIs v2.13 failed to load. - Script Security Plugin v1.13 is older than required. To fix, install v1.21 or later. at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621) at hudson.PluginManager$2$1$1.run(PluginManager.java:516) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) … jenkins.InitReactorRunner$1 onTaskFailed SEVERE: Failed Loading plugin Pipeline: Nodes and Processes v2.9 (workflow-durable-task-step) java.io.IOException: Pipeline: Nodes and Processes v2.9 failed to load. - Pipeline: Supporting APIs v2.13 failed to load. Fix this plugin first. at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621) at hudson.PluginManager$2$1$1.run(PluginManager.java:516) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) … jenkins.InitReactorRunner$1 onTaskFailed SEVERE: Failed Loading plugin Pipeline: Job v2.9 (workflow-job) java.io.IOException: Pipeline: Job v2.9 failed to load. - Pipeline: Supporting APIs v2.2 failed to load. Fix this plugin first. at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621) at hudson.PluginManager$2$1$1.run(PluginManager.java:516) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) … jenkins.InitReactorRunner$1 onTaskFailed SEVERE: Failed Loading plugin Pipeline: Groovy v2.27 (workflow-cps) java.io.IOException: Pipeline: Groovy v2.27 failed to load. - Pipeline: Supporting APIs v2.13 failed to load. Fix this plugin first. at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:621) at hudson.PluginManager$2$1$1.run(PluginManager.java:516) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$7.runTask(Jenkins.java:1085) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) … which with the proposed POM update fails earlier and more helpfully: --- maven-enforcer-plugin:1.4.2-SNAPSHOT:enforce (display-info) @ parameterized-trigger --- Ignoring requireUpperBoundDeps in com.google.code.findbugs:jsr305 Ignoring requireUpperBoundDeps in commons-logging:commons-logging Ignoring requireUpperBoundDeps in com.google.guava:guava Rule 5: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps failed with message: Failed while enforcing RequireUpperBoundDeps. The error(s) are [ Require upper bound dependencies error for org.jenkins-ci.plugins:scm-api:0.2 paths to dependency are: +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins:subversion:2.5.7 +-org.jenkins-ci.plugins:scm-api:0.2 and +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins.workflow:workflow-cps:2.27 +-org.jenkins-ci.plugins:scm-api:1.1 , Require upper bound dependencies error for org.jenkins-ci.plugins:script-security:1.13 paths to dependency are: +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins:matrix-project:1.6 +-org.jenkins-ci.plugins:script-security:1.13 and +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins.workflow:workflow-cps:2.27 +-org.jenkins-ci.plugins:script-security:1.24 and +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.9 +-org.jenkins-ci.plugins:script-security:1.25 and +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins.workflow:workflow-support:2.13 +-org.jenkins-ci.plugins:script-security:1.21 , Require upper bound dependencies error for org.apache.ant:ant:1.8.4 paths to dependency are: +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.main:jenkins-core:2.32.3 +-org.apache.ant:ant:1.8.4 and +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins:promoted-builds:2.25 +-org.jenkins-ci.main:maven-plugin:2.0 +-org.jenkins-ci.main.maven:maven-agent:1.4 +-org.apache.ant:ant:1.8.4 and +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins:promoted-builds:2.25 +-org.jenkins-ci.main:maven-plugin:2.0 +-org.jenkins-ci.lib:lib-jenkins-maven-embedder:3.11 +-org.apache.ant:ant:1.9.2 , Require upper bound dependencies error for org.jenkins-ci:symbol-annotation:1.1 paths to dependency are: +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.main:jenkins-core:2.32.3 +-org.jenkins-ci:symbol-annotation:1.1 and +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins.workflow:workflow-cps:2.27 +-org.jenkins-ci.plugins:structs:1.5 +-org.jenkins-ci:symbol-annotation:1.5 , Require upper bound dependencies error for org.jenkins-ci.plugins.icon-shim:icon-set:1.0.5 paths to dependency are: +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.main:jenkins-core:2.32.3 +-org.jenkins-ci.plugins.icon-shim:icon-set:1.0.5 and +-org.jenkins-ci.plugins:parameterized-trigger:2.34-SNAPSHOT +-org.jenkins-ci.plugins:matrix-auth:1.4 +-org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3 +-org.jenkins-ci.plugins.icon-shim:icon-set:2.0.3 ] The token-macro problem is not yet getting picked up, because it is an optional dependency of promoted-builds yet a mandatory dependency of conditional-buildstep . Since Maven dependency resolution does not pick up the transitive closure of optional dependencies, Maven only considers there to be one dependency path to token-macro . Jenkins however treats a low version of a dependency as an error for the depending plugin, even in the case of an optional dependency, since the plugin APIs offer no way to obtain a dependency iff it is supposed to be available. So this case remains one that needs to be tested by rerunning InjectedTest .

            jglick Jesse Glick
            jglick Jesse Glick
            Votes:
            2 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: