gradle - Gradle - 在自定义任务中跳过测试
问题描述
从命令运行 gradle 构建时,我可以像这样跳过测试:
./gradlew build -x test
我有一个自定义任务,可以清理、构建和发布到 Maven 本地定义,如下所示:
task releaseLocal(type: GradleBuild) {
tasks = ['clean', 'build', 'publishToMavenLocal']
}
当我调用它时,以下任务都不会跳过测试:
./gradlew releaseLocal
./gradlew releaseLocal -x test
我可以在任务中添加什么来跳过测试?
解决方案
类型的任务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
属性,因此您必须在覆盖属性tasks
后startParameter
定义。
推荐阅读
- python-3.x - 如何设置一组地理轴 - 子图的 cartopy 网格线标签样式(major_xticks 和 minor_xticks)?
- arduino - 如何使用 MQTT 构建仅控制 ESP32 的内置 LED 开/关的 Arduino 草图?
- sql - 带有 SQL 查询的 Data Studio SYSTEM_ERROR 代码 13
- python - 如何在python中创建具有多个x轴的条形图
- sql - SQL 链接服务器到访问数据库
- javascript - 如何使用套接字登录
- c# - 无法使用 Razor 视图引擎访问来自不同项目的视图
- c# - gameobject 对象变量未分配,我如何在脚本中统一分配它?
- mysql - 需要将 React.js 登录表单连接到 SpringBoot 应用后端和 MySQL 数据库
- c# - 如何使用字典按排名对项目进行排序