如何使用spring boot gradle插件设置JAVA_OPTS

时间:2018-05-20 08:54:06

标签: spring-boot gradle

我尝试设置JAVA_OPTS,但生成的脚本unter 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文件中,遗憾的是,该文件也不起作用。

1 个答案:

答案 0 :(得分:0)

我是这样做的:

使用您的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'
    }
}