Class CreateStartScripts

  • All Implemented Interfaces:
    java.lang.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 Detail

      • CreateStartScripts

        public CreateStartScripts()