我希望在animalSniffer插件中有一个任务依赖于所有源集中所有生产类(Java,Groovy,Scala)的编译,第二个依赖于所有源集中所有测试类的编译(可能会分开test
和integrationTest
)。
我不想依赖*classes
任务,因为*classes
任务应该依赖animalSniffer
任务(在编译后检测Java版本API不兼容并且可以停止构建)。< / p>
在Gradle中有没有比检查AbstractCompile
任务名称的实例是否以“compileTest”开头更好的方法?
答案 0 :(得分:2)
您可以使用tasks.withType(AbstractCompile)
返回所有源集(包括Java,Groovy,Scala)的所有编译任务。然后,您可以根据其他答案中的建议删除其中包含test
的所有任务来对此进行过滤。
对于依赖所有这些的特定任务,您可以执行以下操作:
myTask.dependsOn tasks.withType(AbstractCompile).matching {
!it.name.toLowerCase().contains("test")
}
答案 1 :(得分:1)
如果需要区分生产和测试编译任务/源集,请检查名称是否包含test
(不区分大小写)是可用的最佳解决方案。