【问题标题】:Passing arguments to build.gradle将参数传递给 build.gradle
【发布时间】:2023-03-25 03:14:01
【问题描述】:

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

有什么想法吗?

【问题讨论】:

    标签: docker spring-boot gradle environment-variables


    【解决方案1】:

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

    gradlew build docker -Penv=qa
    

    然后在你的构建脚本中你可以访问这个属性:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-18
      • 2019-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2013-11-19
      相关资源
      最近更新 更多