将参数传递给build.gradle

时间:2018-09-10 13:43:36

标签: docker spring-boot gradle environment-variables

我正在使用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中的局部变量,而不是环境变量

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

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

gradlew build docker -Penv=qa

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

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