首页 > 解决方案 > 将参数传递给 build.gradle

问题描述

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

构建最终输出一个 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 中的局部变量,而不是环境变量

有任何想法吗?

标签: dockerspring-bootgradleenvironment-variables

解决方案


您可以使用项目属性从命令行将值传递给构建脚本,如下所示:

gradlew build docker -Penv=qa

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

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

推荐阅读