我尝试设置 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 文件中,但不幸的是它也不起作用。
最佳答案
这是我如何做到的:
使用您的 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'
}
}
关于spring-boot - 如何使用 spring boot gradle 插件设置 JAVA_OPTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50433174/