gpt4 book ai didi

每个项目模块的 Gradle 可重用自定义任务

转载 作者:行者123 更新时间:2023-12-03 03:56:52 25 4
gpt4 key购买 nike

如何定义可重用模块的自定义任务?就我而言,我想使用 Exec使用 commandLine 运行脚本的任务特定于子项目的参数。

例如:

脚本

#!/usr/bin/env sh
echo "$@"

build.gradle
task customExecTask(type: Exec) {
if (project.name == "a") {
commandLine './script', "Project 'a'"
} else if (project.name == "b") {
commandLine './script', "Project 'b'"
}
}

project('a') {
build.dependsOn ':customExecTask'
}

project('b') {
build.dependsOn ':customExecTask'
}

编辑

或者是这样的:
task customExecTask(type: Exec) {
def dynamicVariable = ""
commandLine './script', dynamicVariable
}

project('a') {
task(':customExecTask').dynamicVariable = "Project 'a'"
build.dependsOn ':customExecTask'
}

project('b') {
task(':customExecTask').dynamicVariable = "Project 'b'"
build.dependsOn ':customExecTask'
}

预期结果:
$ gradle :a:build
Project 'a'

$ gradle :b:build
Project 'b'

最佳答案

请引用 Using Gradle Plugins 上的文档.

据此topic ,您可以将任务放在单独的 gradle 文件中 mytask.gradle并在您添加到 build.gradle 的每个模块中:
apply from: "${rootDir}/pathtomycustomgradlefile/mytask.gradle"
如果您需要更多逻辑来决定应用哪一个,您可以查看主题 Applying plugins to subprojects .

关于每个项目模块的 Gradle 可重用自定义任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56538911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com