【问题标题】:How to set JAVA_OPTS with spring boot gradle plugin如何使用 spring boot gradle 插件设置 JAVA_OPTS
【发布时间】:2018-10-30 04:26:35
【问题描述】:

我尝试设置 JAVA_OPTS,但在 build/bootScripts 下生成的脚本不接受配置。

plugins {
    id 'java'
    id 'application'
    id 'org.springframework.boot' version '2.0.2.RELEASE'
    id "io.spring.dependency-management" version "1.0.5.RELEASE"
}

version '1.0-SNAPSHOT'

repositories {
    jcenter()
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8
mainClassName = "kic.data.server.Server"

applicationDefaultJvmArgs  = [
        '-Dkic.data.persistency.path=./data'
]

在 bootScripts/server 我只得到一个空变量

# Add default JVM options here. You can also use JAVA_OPTS and SERVER_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""

我还尝试将 conf 文件放置到 lib 文件夹中的 jar 文件中,但不幸的是也不起作用。

【问题讨论】:

    标签: spring-boot gradle


    【解决方案1】:

    我是这样做的:

    使用您的 JVM 选项创建一个文件。例如 javaOpts.conf:

    JAVA_OPTS="$JAVA_OPTS -Dkic.data.persistency.path=./data -Xmx1024m"

    spring boot 插件会自动提供一个 bootJar 任务,可以用来生成你的可运行 jar。您可以通过在 build.gradle 文件中添加该任务将您的 conf 文件插入到启动脚本中:

    bootJar{
        launchScript {
            properties 'inlinedConfScript': 'path/to/your/javaOpts.conf'
        }
    }
    

    这会将自定义 conf 脚本中的任何内容转储到 spring boot 生成的启动脚本中。 here 没有记录,所以它可能会改变,但是 default launch script 在运行 jar 时包含 JAVA_OPTS 环境变量。

    运行 bootJar 任务 (gradlew bootJar),它将创建一个可执行 jar,您可以从命令行运行:./myBootJar.jar

    看起来您也在尝试为您的 jar 设置 mainClassName。您还可以使用 bootJar 任务执行此操作:

    bootJar{
        mainClassName = 'kic.data.server.Server'
        launchScript {
            properties 'inlinedConfScript': 'path/to/your/javaOpts.conf'
        }
    }
    

    【讨论】:

    • 有一个小语法错误,应该是properties[ 'inlinedConfScript'] = 'src/build/java-opts.conf'。但是它失败了Failed to write launch script to ...
    • 它不需要括号,但我确实有一个额外的冒号。修复了这个问题,所以现在它就是我的样子(我使用的是 gradle 4.7),并且与文档中的 launchScript 示例相匹配。错误消息没有太大帮助,但您确定它正在找到您的 conf 文件吗?
    • 拯救了我的一天。文档中并不清楚如何从 maven 执行此操作!
    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 2019-03-23
    • 2022-08-04
    • 1970-01-01
    • 2017-08-01
    • 2022-01-16
    • 2019-12-14
    • 2014-12-29
    相关资源
    最近更新 更多