Search code examples
mavenjenkinsgradlegroovyjenkins-pipeline

unable to resolve class org.jenkinsci.plugins.workflow.support.steps.build.DownstreamFailureCause


I have the following build.gradle.kts



plugins {
  id("com.mkobit.jenkins.pipelines.shared-library") version "0.10.1"
  id("com.github.ben-manes.versions") version "0.21.0"
  java
}

java {
  sourceCompatibility = JavaVersion.VERSION_1_8
  targetCompatibility = JavaVersion.VERSION_1_8
}

tasks.withType<Test> {
  this.testLogging {
    this.showStandardStreams = true
  }
}

val log4jVersion = "2.11.2"
val slf4jVersion = "1.7.26"
val declarativePluginsVersion = "1.3.9"

dependencies {
  // logging stuffs
  testImplementation("org.slf4j:slf4j-api:$slf4jVersion")
  testImplementation("org.apache.logging.log4j:log4j-api:$log4jVersion")
  testImplementation("org.apache.logging.log4j:log4j-core:$log4jVersion")
  testImplementation("org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion")
  testImplementation("org.apache.logging.log4j:log4j-jul:$log4jVersion")

  // general testing stuff
  testImplementation("org.assertj:assertj-core:3.12.2")
  testImplementation("com.lesfurets:jenkins-pipeline-unit:1.3")
  testImplementation("junit:junit:4.12") // TODO: update to 5

  // jenkins specific deps
  testImplementation("org.jenkins-ci.plugins:pipeline-build-step:2.9")
  testImplementation("org.jenkinsci.plugins:pipeline-model-api:$declarativePluginsVersion")
  testImplementation("org.jenkinsci.plugins:pipeline-model-declarative-agent:1.1.1")
  testImplementation("org.jenkinsci.plugins:pipeline-model-definition:$declarativePluginsVersion")
  testImplementation("org.jenkinsci.plugins:pipeline-model-extensions:$declarativePluginsVersion")
  testImplementation("org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.8")
  testImplementation("org.jenkins-ci.plugins.workflow:workflow-step-api:2.18")
}

jenkinsIntegration {
  baseUrl.set(uri("http://localhost:5050").toURL())
  authentication.set(providers.provider { com.mkobit.jenkins.pipelines.http.AnonymousAuthentication })
  downloadDirectory.set(layout.projectDirectory.dir("jenkinsResources"))
}

sharedLibrary {
  coreVersion.set(jenkinsIntegration.downloadDirectory.file("core-version.txt").map { it.asFile.readText().trim() })
  pluginDependencies {
    dependency("org.jenkins-ci.plugins", "pipeline-build-step", "2.9")
    dependency("org.jenkinsci.plugins", "pipeline-model-api", declarativePluginsVersion)
    dependency("org.jenkinsci.plugins", "pipeline-model-declarative-agent", "1.1.1")
    dependency("org.jenkinsci.plugins", "pipeline-model-definition", declarativePluginsVersion)
    dependency("org.jenkinsci.plugins", "pipeline-model-extensions", declarativePluginsVersion)
    dependency("org.jenkins-ci.plugins.workflow", "workflow-step-api", "2.18")
  }
}

when I do gradlew build

I got the following error on one of my groovy file:

unable to resolve class org.jenkinsci.plugins.workflow.support.steps.build.DownstreamFailureCause

To me the dependency should be solved in the pluginDependencies section.


Solution

  • I found a solution.

    It seems that the class I was having a problem with was introduced in version 2.10

    So you need to change

    org.jenkins-ci.plugins:pipeline-build-step:2.9

    to

    org.jenkins-ci.plugins:pipeline-build-step:2.10