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

标签 spring-boot gradle

我尝试设置 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/

相关文章:

unit-testing - Spring Boot 1.5 在尝试测试服务时没有找到类 def FilterRegistrationBean

java - 如何将 messages.properties 键发送到 Controller 中引发的异常?

java - 为什么post请求会出现禁止错误?

jsp - 预编译 JSP 的正确 WEB-INF 路径是什么?

android - Gradle Kotlin DSL 找不到 java.io 包

java - Spring Boot - 字符串到枚举的转换接受枚举的值和索引。如何拒绝数字输入并仅接受枚举值?

java - Thymeleaf 中的 View 和重定向有什么区别?

jenkins - 谁能帮我理解如何在 Jenkins 中进行增量构建?

java - 错误 : Could not find or load main class cucumber. api.cli.Main

java - 如何为每个jar从相同的源但不同的主类创建多个jar?