在Gradle中排除运行时的一些编译依赖项

时间:2014-10-30 00:08:29

标签: groovy gradle

我正在使用Gradle构建我的Groovy应用程序。像往常一样,我在compile脚本中指定build.gradle依赖项,如下所示:

dependencies {
    // groovy
    compile "org.codehaus.groovy:groovy:$groovyVersion"
    compile "org.codehaus.groovy:groovy-json:$groovyVersion"
    compile "org.codehaus.groovy:groovy-test:$groovyVersion"

    // some more external dependencies...
}

好的,runtime我并不需要所有这些依赖项,例如我不需要任何测试类。所以我现在正在寻找的方法是告诉Gradle它应该对runtime使用与compile相同的依赖关系(无论如何都是默认值),但不包括其中一些。

是否有一种简短的方法可以实现,或者我是否必须列出runtime的所有依赖项?

1 个答案:

答案 0 :(得分:1)

反过来说:Groovy的传递依赖性通常不需要编译(除了由于Groovy编译器的已知限制,它们有时 ),但它们肯定需要在运行。但是,在这里优化编译依赖关系并不值得,因此只需将Groovy依赖关系声明为compile依赖关系(这也会自动使它们成为runtime依赖关系)。应将Groovy测试依赖项添加到testCompile配置中。