将参数传递给 build.gradle

Posted

技术标签:

【中文标题】将参数传递给 build.gradle【英文标题】:Passing arguments to build.gradle 【发布时间】:2019-02-14 23:14:43 【问题描述】:

我正在使用 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,但现在我还想 文件。是否可以使用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】:

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

gradlew build docker -Penv=qa

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

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

【讨论】:

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

如何将参数传递给进程

如何通过反射将参数传递给方法

如何将参数传递给 erlang os:cmd()?

将 NSDictionary 作为参数传递给 UITapGestureRecognizer

如何将两个参数传递给 Pool.starmap()?

将参数传递给windows计划任务