我的 gradle 设置在运行时接受参数,这些参数在 Gradle Exec 任务调用的 shell 脚本中检查。但是,为了达到这一点,Gradle 处理依赖项并在执行结束脚本之前花费大量时间,如果没有传递参数,则会抛出错误。
gradle 中的构建任务如下所示:
task buildAll(type: Exec) {
environment['PROJECT_ROOT'] = "${projectDir}"
workingDir rootProject.projectDir.path
executable rootProject.projectDir.path + "/script.ksh"
if (project.hasProperty('ARGS')) {
args(ARGS.split(','))
}
}
Gradle 的调用方式如下:
./gradlew build -PARGS="-arg1,value1,-arg2,value2,-arg3,-arg4,value4"
我打算检查
-arg2
如果未提供,我希望 gradle 构建失败并显示某种用法。这可能吗?
最佳答案
您可以在脚本的最开头添加一个 if 块:
if (!project.hasProperty('lol')) {
throw new GradleException("'lol' property is required!")
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.guava:guava:18.0'
}
}
但是它不会阻止 gradle 解析脚本本身的依赖项 -
buildscript
块将首先被评估。
关于gradle - 如果没有向 Gradle 提供参数,是否可能引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33228064/