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

时间:2018-01-10 15:39:18

标签: intellij-idea gradle groovy 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
}

1 个答案:

答案 0 :(得分:2)

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

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

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

然后在您的类路径中找到该类(并且您将开始查找下一个缺失的依赖项)。