Class CreateStartScripts

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.internal.ConventionTask
org.gradle.jvm.application.tasks.CreateStartScripts
org.gradle.api.tasks.application.CreateStartScripts
All Implemented Interfaces:
Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, Named, ExtensionAware, Task, Configurable<Task>

@DisableCachingByDefault(because="Not worth caching") public abstract class CreateStartScripts extends CreateStartScripts
Creates start scripts for launching JVM applications.

Example:

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

Note: the Gradle "application" plugin adds a pre-configured task of this type named "startScripts".

The task generates separate scripts targeted at Microsoft Windows environments and UNIX-like environments (e.g. Linux, macOS). The actual generation is implemented by the CreateStartScripts.getWindowsStartScriptGenerator() and CreateStartScripts.getUnixStartScriptGenerator() properties, of type ScriptGenerator.

Example:

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

The default generators are of the type TemplateBasedScriptGenerator, with default templates. This templates can be changed via the TemplateBasedScriptGenerator.setTemplate(org.gradle.api.resources.TextResource) method.

The default implementations used by this task use Groovy's SimpleTemplateEngine to parse the template, with the following variables available:

  • applicationName
  • optsEnvironmentVar
  • exitEnvironmentVar
  • mainModule
  • mainClass
  • defaultJvmOpts
  • appNameSystemProperty
  • appHomeRelativePath
  • classpath

Example:

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

    • CreateStartScripts

      public CreateStartScripts()