Dav*_*son 6 dependencies gradle
在跳过该任务时,是否有可能不执行任务的依赖关系?
在下面的示例中,如果服务器在执行时已经运行,我希望jar(以及它的依赖关系jar)不被执行runServerTests.在这种情况下,服务器将由另一个进程启动.
apply plugin: 'java'
task startServerIfNotRunning(dependsOn: jar) {
onlyIf { isServerNotRunning() }
...
}
task runServerTests(dependsOn: startServerIfNotRunning) { ... }
Run Code Online (Sandbox Code Playgroud)
我宁愿不是添加onlyIf到jar任务,因为这总是应该可以根据一个执行其他任务.该jar任务也有自己的依赖.
为了获得所需的行为,您必须从任务执行图中排除该任务,而不是跳过其执行。您可以-x从命令行执行此操作,也可以使用 或 以编程方式gradle.startParameter.excludedTaskNames << "..."执行此操作gradle.taskGraph.useFilter { task -> ... }。
你可以做类似的事情
task startServerIfNotRunning(dependsOn: jar) {
if (isServerNotRunning()) {
enabled = false;
dependsOn = [];
}
}
Run Code Online (Sandbox Code Playgroud)
我们在配置阶段评估 if 语句,并删除相关任务。我在使用代码和输出跳过 Gradle 任务中对此进行了总结。看一看。
| 归档时间: |
|
| 查看次数: |
3278 次 |
| 最近记录: |