将参数传递给build.gradle

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将参数传递给build.gradle相关的知识,希望对你有一定的参考价值。

我正在使用gradle构建一个spring boot应用程序。

构建最终输出一个docker容器,我希望我的build.gradle支持多个环境。

我使用gradlew build docker来构建我的build.gradle的docker部分是:

docker {
  dependsOn build
  name "app-production"
  files bootJar.archivePath, 'application.yml'
  buildArgs(['JAR_FILE': "${bootJar.archiveName}"])
}

我成功地将参数传递给dockerfile但现在我还想将参数传递给build.gradle文件。是否有可能使用gradlew build docker

我需要这样的东西:gradlew build docker --env=qa然后:

docker {
  dependsOn build
  name "app-${env}"
  files bootJar.archivePath, 'application.yml'
  buildArgs(['JAR_FILE': "${bootJar.archiveName}"])
}

注意:${bootJar.archiveName}是我的build.gradle中的局部变量,而不是环境变量

有任何想法吗?

答案

您可以使用Project Properties从命令行将值传递到构建脚本,如下所示:

gradlew build docker -Penv=qa

然后在您的构建脚本中,您可以访问此属性:

docker { 
    name "app-${env}"
    // ....
}

以上是关于将参数传递给build.gradle的主要内容,如果未能解决你的问题,请参考以下文章

如何在 build.gradle 中将参数传递给 Gradle 任务

如何从命令行将参数传递给gradle

如何将不同的参数传递给片段 [导航] Android

将参数传递给 XML 布局中定义的片段

如何使用底部导航视图和 Android 导航组件将参数传递给片段?

Android - 如何将自定义对象传递给片段