【问题标题】:How to set system properties in IntelliJ IDEA 13 gradle task?如何在 IntelliJ IDEA 13 gradle 任务中设置系统属性?
【发布时间】:2014-10-08 08:25:30
【问题描述】:

我有一个带有 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。

【问题讨论】:

  • 你试过脚本参数吗?
  • 是的,我试过脚本参数,它也不起作用。

标签: gradle intellij-13


【解决方案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 工具窗口会导致命令在无法访问环境变量的情况下运行。这可能会导致依赖于这些环境变量的构建出现很多问题。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2014-12-02
    相关资源
    最近更新 更多