背景
我想用my plugin对nebula-test进行回归测试。我的插件是用Groovy编写的,但它很简单,并且在使用Gradle 1.x构建时可以在Gradle 2.x的项目中使用。目前,由于Gradle和Groovy conflicts on classpath,我只能使用Gradle 1.x对其进行自动测试(从Gradle 2.x运行时,同时具有Gradle 1.x和2.x以及Groovy 1.8.6和2.3.6依赖性) 。作为一种解决方法,我只想将插件的运行时依赖项放到类路径上(不包括gradleApi
和localGroovy
提供的JAR),并且在为我的插件运行Gradle构建脚本时需要生成该列表(测试运行时为时已晚)确定给定JAR中包含的内容)。
题
我如何以编程方式(例如build.gradle中的任务)生成运行时依赖项列表(实际上是由它们添加到类路径中的JAR + build / class / main和build / resources / main)而不是而不是来自gradleApi
和localGroovy
?
最佳答案
听起来您想要这样的东西:
configurations {
gradleDeps
}
dependencies {
gradleDeps gradleApi() // includes localGroovy
compile configurations.gradleDeps
compile ...
runtime ...
}
def runtimeWithoutGradleDeps = configurations.runtime - configurations.gradleDeps
task printFiles {
doLast {
runtimeWithoutGradleDeps.each { println it }
}
}
关于groovy - 以编程方式生成没有gradleApi和localGroovy的插件依赖项列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26180804/