代码之家  ›  专栏  ›  技术社区  ›  KIC

如何使用spring boot gradle插件设置JAVA_选项

  •  4
  • KIC  · 技术社区  · 7 年前

    我试图设置JAVA_选项,但生成的脚本unter build/BOOTSCRIPT不接受配置。

    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 回复  |  直到 7 年前
        1
  •  2
  •   Tony    7 年前

    我是这样做的:

    使用JVM选项创建一个文件。例如javaOpts。形态:

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

    spring引导插件自动提供一个bootJar任务,可以用来生成可运行的jar。通过在构建中添加conf文件,可以让该任务将conf文件插入到启动脚本中。gradle文件:

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