CreateStartScripts

创建用于启动JVM应用程序的启动脚本。

示例

task createStartScripts(type: CreateStartScripts) {
  outputDir = file('build/sample')
  mainClass = 'org.gradle.test.Main'
  applicationName = 'myApp'
  classpath = files('path/to/some.jar')
}

注意:Gradle "application" 插件会添加一个预配置的此类型任务,名为 "startScripts"

该任务会生成针对Microsoft Windows环境和UNIX-like环境(例如Linux、macOS)的单独脚本。实际生成由 CreateStartScripts.getWindowsStartScriptGenerator()CreateStartScripts.getUnixStartScriptGenerator() 属性实现,类型为 ScriptGenerator

示例

task createStartScripts(type: CreateStartScripts) {
  unixStartScriptGenerator = new CustomUnixStartScriptGenerator()
  windowsStartScriptGenerator = new CustomWindowsStartScriptGenerator()
}

class CustomUnixStartScriptGenerator implements ScriptGenerator {
  void generateScript(JavaAppStartScriptGenerationDetails details, Writer destination) {
    // implementation
  }
}

class CustomWindowsStartScriptGenerator implements ScriptGenerator {
  void generateScript(JavaAppStartScriptGenerationDetails details, Writer destination) {
    // implementation
  }
}

默认生成器是 TemplateBasedScriptGenerator 类型,带有默认模板。这些模板可以通过 TemplateBasedScriptGenerator.setTemplate(org.gradle.api.resources.TextResource) 方法进行更改。

此任务使用的默认实现使用 Groovy 的 SimpleTemplateEngine 来解析模板,并提供以下可用变量:

编码路径要求脚本中存在名为 APP_HOME 的变量,该变量设置为应用程序主目录,可以使用 appHomeRelativePath 解析。

示例

task createStartScripts(type: CreateStartScripts) {
  unixStartScriptGenerator.template = resources.text.fromFile('customUnixStartScript.txt')
  windowsStartScriptGenerator.template = resources.text.fromFile('customWindowsStartScript.txt')
}

属性

属性描述
applicationName

应用程序的名称。

类路径

应用程序的类路径。

defaultJvmOpts

应用程序的默认JVM选项。默认为空列表。

executableDir

在分发中写入脚本的目录。

mainClass

用于启动Java应用程序的主类名。

mainModule

用于启动模块化Java应用程序的主模块名。

optsEnvironmentVar

用于向JVM提供额外选项的环境变量。

outputDir

写入脚本的目录。

unixStartScriptGenerator

类Unix启动脚本生成器。

windowsStartScriptGenerator

Windows启动脚本生成器。

方法

无方法

脚本块

无脚本块

属性详情

String applicationName

应用程序的名称。

FileCollection classpath

应用程序的类路径。

Iterable<String> defaultJvmOpts

应用程序的默认JVM选项。默认为空列表。

String executableDir

在分发中写入脚本的目录。

Property<String> mainClass

用于启动Java应用程序的主类名。

Property<String> mainModule

用于启动模块化Java应用程序的主模块名。

String optsEnvironmentVar

用于向JVM提供额外选项的环境变量。

File outputDir

写入脚本的目录。

ScriptGenerator unixStartScriptGenerator

类Unix启动脚本生成器。

默认为 TemplateBasedScriptGenerator 的实现。

ScriptGenerator windowsStartScriptGenerator

Windows启动脚本生成器。

默认为 TemplateBasedScriptGenerator 的实现。