如何在IntelliJ IDEA 13 gradle任务中设置系统属性?

Kar*_*gam 6 gradle intellij-13

我有一个带有gradle构建工具的Spring Boot项目。JDBC URL,用户名和密码保存在一个属性文件中,该文件不是应用程序的一部分,它是一个外部属性文件,该属性文件的路径来自系统属性,如下所示。

export _JAVA_OPTIONS=-DdatabaseConfiguration=db.properties
Run Code Online (Sandbox Code Playgroud)

如果我从终端使用来运行应用程序,则它正在工作gradle bootRun,但是当我尝试从Intellij IDEA 13 gradle任务中运行时,它不起作用,该属性值为null。

我在运行/调试配置中尝试了VM选项,如以下屏幕截图所示,它也不起作用

运行/调试配置

如何在Intellij IDEA 13 gradle任务中设置JAVA_OPTIONS。

Spl*_*tar 4

这是因为每次您使用 Gradle 工具窗口在 IntelliJ 中启动任务时,它都会创建/覆盖该任务的启动配置。

基本上,我只需要从 Gradle 工具窗口运行一次。然后我进入失败的启动配置(如问题所示)并在虚拟机选项中输入系统属性。从那时起,我需要使用 Launch Config 来执行任务,而不是 Gradle 工具窗口。

更新:更好的解决方案:

  • 首选项 -> 构建、执行、部署 -> 构建工具 -> Gradle -> Gradle VM 选项
  • 在那里添加您的系统属性(即-Dappengine.sdk.root=/opt/google/google-cloud-sdk/platform/appengine-java-sdk

这样做可以防止它们在 Gradle 工具窗口生成的启动配置中被覆盖/丢失。

另一件需要注意的事情是,使用 Gradle 工具窗口会导致命令在无法访问环境变量的情况下运行。这可能会导致依赖这些环境变量的构建出现很多问题。

我今天使用 appengine-gradle-plugin 遇到了这个问题,不得不把

-Dappengine.sdk.root=/opt/google/google-cloud-sdk/platform/appengine-java-sdk

在虚拟机选项中,因为它没有看到环境变量。从命令行,它获取环境变量并正常工作。这适用于我的 appengineRun 任务。

但它不适用于 appengineUpdate,因为这会由于缺少环境变量而导致另一个错误:Toolkit not found: apple.awt.CToolkit