无法使用 Gradle 解析库。使用 Grape 解决

Unable to resolve library using Gradle. Resolved using Grape

我是 Groovy 的新手,我正在努力了解 Gradle。如果我通过 Grapes 导入 org.jvnet.hudson.plugins 它会完美地工作并且依赖关系得到解决。但是,如果我尝试使用 Gradle 检索依赖关系,则依赖关系不会得到解决。

org.eclipse.hudson:hudson-core:3.2.1 包适用于 Gradle 和 Grape。

未使用 Gradle

解析的依赖项
compile 'org.jvnet.hudson.plugins:checkstyle:3.42'

使用 Grape 解析的依赖项

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

使用Gradle

解析的依赖
compile 'org.eclipse.hudson:hudson-core:3.2.1'

Gradle 构建时出错

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

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
}

您可能实际上并没有下载您认为的 jar。看起来从 org.jvnet.hudson.plugins:checkstyle:3.42 依赖项返回的默认工件实际上是一个名为 checkstyle-3.42.hpi.

的文件

要获取包含 classes 的 jar,请使用:

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

然后 class 将在您的 class 路径中找到(您将找到下一个缺失的依赖项)。