我尝试设置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 /服务器中,我只得到一个空变量
# 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文件中,不幸的是,该文件也不起作用。

最佳答案

这是我的做法:

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

10-05 23:24