gradle - 如果没有向 Gradle 提供参数,是否可能引发错误?

标签 gradle

我的 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/

相关文章:

安卓工作室 1.5.1 : Could not find property 'vectorDrawables'

java - 如何在IntelliJ中运行Gradle项目

gradle - 从gradle的子项目中引用外部项目

gradle - 在kotlin js项目中包含kotlinx-datetime库的问题

java - 使用 Lombok 构建 Gradle

android - 从编译依赖项中排除 .class 文件

java - 类里面的良好实践 Gradle flavor

gradle - 谁能给我这个丢失的存储库位置

android - 如何准备混淆文件以及其中包含的内容?

java - 从java获取gradle构建路径文件夹