user634545
user634545

Reputation: 9419

Unable to resolve library using Gradle. Resolved using Grape

I'm fairly new to Groovy and I'm trying to wrap my head around Gradle. If I import the org.jvnet.hudson.plugins through Grapes it works perfectly and the dependency is resolved. But if I try to retrieve the dependency using Gradle the dependency is not resolved.

The package org.eclipse.hudson:hudson-core:3.2.1 works with both Gradle and Grape.

A dependency that is not resolved using Gradle

compile 'org.jvnet.hudson.plugins:checkstyle:3.42'

A dependency which is resolved using Grape

@Grab('org.jvnet.hudson.plugins:checkstyle:3.42')

A dependency which is resolved using Gradle

compile 'org.eclipse.hudson:hudson-core:3.2.1'

Error during Gradle build

line 3, column 1.
   import hudson.plugins.checkstyle.CheckStyleResultAction;
   ^

The build.gradle

apply plugin: 'groovy'

repositories {
    mavenCentral()

    maven {
        url "http://repo.jenkins-ci.org/releases/"
    }
}

configurations {
    ivy
}

sourceSets {
    main {
        groovy {
            srcDirs = ['src/']
        }
    }

    test {
        groovy {
            srcDirs = ['test/']
        }
    }
}

dependencies {

    compile 'org.codehaus.groovy:groovy-all:2.4.11'

    compile "org.apache.ivy:ivy:2.4.0"
    ivy "org.apache.ivy:ivy:2.3.0"

    // Works
    compile 'org.eclipse.hudson:hudson-core:3.2.1'

    // Does not work
    compile 'org.jvnet.hudson.plugins:checkstyle:3.42'
}


tasks.withType(GroovyCompile) {
    groovyClasspath += configurations.ivy
}

Upvotes: 1

Views: 878

Answers (1)

Tom Tresansky
Tom Tresansky

Reputation: 19892

You're probably not actually downloading the jar you think you are. Looks like the default artifact that comes back from the org.jvnet.hudson.plugins:checkstyle:3.42 dependency is actually a file named checkstyle-3.42.hpi.

To get the jar which contains the classes instead, use:

compile group: 'org.jvnet.hudson.plugins', name: 'checkstyle', version:'3.42', ext: 'jar'

Then that class will be found on your classpath (and you'll be on to locating the next missing dependency).

Upvotes: 2

Related Questions