使用Spring Boot Gradle插件和IntelliJ设置环境变量

3
我的问题是关于环境变量的。 我正在使用Spring Boot Gradle插件,并在Windows上使用Intellij 14进行开发。
我正在尝试让一些Google API的Pub/Sub示例代码工作,但我认为这不是我的主要问题(在此指出,因为我可能错了!) 如果不在AppEngine上运行,示例代码有许多方法可以通过提供带有身份验证凭据的文件来满足它。我目前没有使用AppEngine的计划。
我被要求设置名为GOOGLE_APPLICATION_CREDENTIALS的环境变量,经过一些小的挣扎,我学会了系统属性无法胜任。必须是环境变量。
我想以一种方式做到这一点,只调整这个IntelliJ项目的环境,而不是整个机器的环境。通常在IntelliJ中,我会通过将环境变量添加到启动配置选项中来完成这个操作。 由于我正在使用Spring Boot Gradle插件,所以我有一个名为“bootRun”的启动配置。 启动配置选项屏幕具有以下主要选项:名称、Gradle项目、任务、VM选项、脚本参数、启动前
没有环境变量选项。
我知道我可以通过执行以下操作之一来解决这个问题: 1. 在Windows系统控制面板下添加环境变量 2. 停止使用Spring Boot插件,使“环境变量”启动配置选项部分重新成为一个选项
我希望有另一种我不知道的选项,因为我对Spring [Boot]和/或Gradle缺乏知识。

尝试使用Gradle Wrapper,它使用bat/bash脚本运行Gradle。您可以在那里设置环境变量,但这仅适用于由Gradle运行的进程,如果您通过Gradle启动您的AppEngine,则应该可以工作。请参见示例https://github.com/spring-projects/spring-framework/blob/master/gradlew.bat - KSTN
谢谢,我会研究gradle wrapper。据我所知,我没有使用AppEngine的意图,只是使用Google Pub/Sub和gmail。我已经编辑了我的问题,包括这个细节。 - user1445967
4个回答

3

您也可以尝试使用命令行完成此操作。您需要将bootRun.systemProperties设置为Gradle的系统属性。

以下是在build.gradle中如何执行此操作:

bootRun.systemProperties = System.properties

然后你只需要运行:

gradle bootRun -DGOOGLE_APPLICATION_CREDENTIALS=/path/to/json

每次我使用Gradle和Spring设置新项目时,我都会忘记 bootRun.systemProperties = System.properties。谢谢您 - Eugene

2
在Gradle Spring Boot插件中,你可以将环境变量设置为键值对数组。
bootRun {
    environment = ["GOOGLE_APPLICATION_CREDENTIALS": "[PATH TO JSON]" ]
}

如何将环境变量设置到数据库中? 我有一个包含${dbUrl},${dbUsername}的app.properties文件 ./gradlew bootRun报错说在"${dbUrl}"的值中无法解析'dbUrl' - andrew17

0

在gradle中设置您的环境变量,如下所示

test {
       environment "GOOGLE_APPLICATION_CREDENTIALS", "<path_to_json>"
     }

0

您可以在 build.gradle 中设置环境变量:

test {
    environment "GOOGLE_APPLICATION_CREDENTIALS", "${project.file("/src/test/resources/service-account-data.json")}"
     }

希望这能帮助到某些人。祝愉快!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接