当前位置: 首页 > 知识库问答 >
问题:

如何仅使用命令行将环境变量传递给gradle wrapper build?

施宏大
2023-03-14

我试图使用严格的命令行命令在本地传递env变量。在部署时,这些变量被传递到docker容器中,但在本地运行时,它们不存在,需要在本地设置。

它们需要在提交之前删除,因为它们是访问密钥,所以我不希望它们在repo中公开。这就是为什么在本地运行测试(没有IDE)需要一个传递这些变量的命令。

我已经试过了:

./gradlew clean build -Dspring.profiles.active=local -DMY_ENV_VAR1=xxxxxx -DMY_ENV_VAR2=xxxxxx

而且它似乎不起作用。我找不到build命令选项的文档,但我认为这是传递它们的方式。我到底做错了什么?还是没有可能?

共有3个答案

司空镜
2023-03-14

我只是像普通Unix shell一样在调用命令之前设置env变量。使用我的Zsh。

< code > MY _ ENV _ var 1 = XXXXXX MY _ ENV _ var 2 = XXXXXX grad Lew clean test

黄英韶
2023-03-14

这个相关的帖子为我工作:https://stackoverflow.com/a/57890208/1441210

解决方案是使用< code>gradlew的< code> - args选项来获取要传递给spring boot应用程序的环境变量:

./gradlew bootRun --args='--spring.profiles.active=local'
苏华藏
2023-03-14

用于传递环境变量

MY_ENV_VAR1=xxxxxxMY_ENV_VAR2=xxxxxx./gradlew bootRun

对于参数/覆盖属性值

./gradlew bootRun--args='--spring.profiles.active=本地--db.url=东西--antherprop=fafdf'

用于传递环境变量和覆盖属性值。

MY_ENV_VAR1=xxxxxxMY_ENV_VAR2=xxxxxx。/gradlew bootRun--args='--spring.profiles.active=本地--db.url=某事--antherprop=fafdf'

 类似资料:
  • 问题内容: 我必须从本地文件夹中的文件中读取一些属性。我需要在命令行中提供此文件路径。我给了它如下所述。但是有一个错误,它显示为 给出的命令是 有人可以帮我解决这个问题吗? 谢谢 问题答案: 尝试给出以下命令,

  • 问题内容: 我是Docker的新手,目前尚不清楚如何从容器访问外部数据库。硬编码连接字符串的最佳方法是吗? 问题答案: 您可以使用该标志将环境变量传递到您的容器。 启动脚本的示例: 或者,如果您不希望在命令行中使用,等显示该值,则可以直接从当前环境中获取该值,如果您不带: 如果您有许多环境变量,尤其是要保密的话,可以使用env文件: --env-file标志将文件名作为参数,并期望每行采用VAR

  • 我是Docker的新手,不清楚如何从容器访问外部数据库。是在连接字符串中硬编码的最佳方法吗?

  • 我是ansible的新手,不知道如何做到这一点,因为以下内容不起作用 其中,是我的变量。

  • 问题内容: 我想编写Docker容器管理的脚本,但是我发现很难将PS变量传递给Docker命令,特别是由于路径格式的差异。 以下行(*)和您可以在此处找到的赞都可以 使用,但是很不方便: 的确,PS 非常适合MSI安装程序,您需要查看弹出窗口并控制其可见性级别,以便了解无提示安装程序正在运行。取而代之的是,您不想每次运行控制台应用程序时都启动一个新窗口,尤其是在Docker中,在其中您与调用程序和

  • 问题内容: 如何将主机环境变量(例如用户名和主机名)传递给dockerfile? 例如,如果我的用户名是: 如何编写Docker文件以获得相同的输出? 问题答案: 我遇到了同样的问题。我的解决方案是在docker-compose.yml内部提供变量,因为yml支持使用环境变量。 我认为这对我来说是最有效的方式,因为我不喜欢在命令行中使用类似以下内容一遍又一遍地键入它 在容器中,声明将无效,将设置为