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

时间:2014-08-14 15:45:13

标签: gradle intellij-13

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

export _JAVA_OPTIONS=-DdatabaseConfiguration=db.properties

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

我在运行/调试配置中尝试了VM选项,如下面的屏幕所示,它不能正常工作

Run/Debug Configuration

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

1 个答案:

答案 0 :(得分:1)

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

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

更新:更好的解决方案:

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

执行此操作将防止它们在Gradle工具窗口生成的启动配置中被覆盖/丢失。

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

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

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

VM选项中的

因为它没有看到env变种。从命令行,它获取env变量并且工作正常。这适用于我的appengineRun任务。

但它对appengineUpdate不起作用,因为这会因缺少env变量而导致另一个错误:Toolkit not found: apple.awt.CToolkit