从命令运行gradle构建时,我可以像这样跳过测试:
./gradlew build -x test
我有一个自定义任务,它可以清理,构建并发布到Maven本地,如下所示:
task releaseLocal(type: GradleBuild) {
tasks = ['clean', 'build', 'publishToMavenLocal']
}
当我这样称呼时,以下任务都不会跳过测试:
./gradlew releaseLocal
./gradlew releaseLocal -x test
我可以添加什么以跳过测试?
答案 0 :(得分:2)
类型为GradleBuild
的任务提供了名为startParameter
的属性。此属性的类型为StartParameter
,可用于传递配置,否则通过命令行参数传递。使用-x
选项传递的任务名称存储在excludedTaskNames
属性中,因此您可以使用以下代码从构建中排除名为test
的任务:
task releaseLocal(type: GradleBuild) {
tasks = ['clean', 'build', 'publishToMavenLocal']
startParameter.excludedTaskNames = ['test']
}
但是,这将为每次test
的调用而排除任务releaseLocal
,因此您可以尝试使用以下代码从当前内部版本传递命令行参数:
task releaseLocal(type: GradleBuild) {
startParameter = gradle.startParameter.newInstance()
tasks = ['clean', 'build', 'publishToMavenLocal']
}
这应该从当前版本中复制命令行参数,因此现在您应该可以通过调用gradle releaseLocal -x <task>
来跳过任何任务。
请注意,在第二个示例中,您不能更改两个配置语句的顺序。在内部,tasks
的属性GradleBuild
将应用于其startParameter
属性,因此您必须在覆盖{{1 }}属性。
答案 1 :(得分:-1)
尝试以下两个命令:
gradle -q releaseLocal
gradle -q releaseLocal -x test