我有一个带有gradle构建工具的Spring Boot项目。 JDBC URL,用户名和密码保存在属性文件中,该文件不是应用程序的一部分,它是外部属性文件,属性文件的路径取自系统属性,如下所示。
export _JAVA_OPTIONS=-DdatabaseConfiguration=db.properties
如果我使用gradle bootRun
从终端运行应用程序,它正在工作,但是当我尝试从Intellij IDEA 13 gradle任务运行它不起作用时,属性值为null。
我在运行/调试配置中尝试了VM选项,如下面的屏幕所示,它不能正常工作
如何在Intellij IDEA 13 gradle任务中设置JAVA_OPTIONS。
答案 0 :(得分:1)
这是因为每次使用Gradle工具窗口启动IntelliJ中的任务时,它都会创建/覆盖该任务的启动配置。
基本上,我只需要从Gradle工具窗口运行一次。然后我进入失败的启动配置(显示在问题中)并在VM选项中输入系统属性。从那时起,我需要使用Launch Config来执行任务而不是Gradle工具窗口。
更新:更好的解决方案:
-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
因为它没有看到env变种。从命令行,它获取env变量并且工作正常。这适用于我的appengineRun任务。
但它对appengineUpdate不起作用,因为这会因缺少env变量而导致另一个错误:Toolkit not found: apple.awt.CToolkit