Package org.gradle.api.tasks.application

# 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`, `ExtensionAware`, `Task`, `org.gradle.util.Configurable<Task>`

public class CreateStartScripts extends CreateStartScripts
Creates start scripts for launching JVM applications.

Example:

     task createStartScripts(type: CreateStartScripts) {
       outputDir = file('build/sample')
       mainClassName = '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`
- `mainClassName`
- `defaultJvmOpts`
- `appNameSystemProperty`
- `appHomeRelativePath`
- `classpath`

Example:

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

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.gradle.api.Task

`Task.Namer`

## Field Summary

### Fields inherited from interface org.gradle.api.Task

`TASK_ACTION, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

## Constructor Summary

Constructors
Constructor
Description
`CreateStartScripts()`

## Method Summary

### Methods inherited from class org.gradle.jvm.application.tasks.CreateStartScripts

`generate, getApplicationName, getClasspath, getDefaultJvmOpts, getExitEnvironmentVar, getMainClassName, getOptsEnvironmentVar, getOutputDir, getRelativeClasspath, getUnixScript, getUnixStartScriptGenerator, getWindowsScript, getWindowsStartScriptGenerator, setApplicationName, setClasspath, setDefaultJvmOpts, setExitEnvironmentVar, setMainClassName, setOptsEnvironmentVar, setOutputDir, setUnixStartScriptGenerator, setWindowsStartScriptGenerator`

### Methods inherited from class org.gradle.api.internal.ConventionTask

`conventionMapping, conventionMapping, getConventionMapping`

### Methods inherited from class org.gradle.api.DefaultTask

`newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

### Methods inherited from class org.gradle.api.internal.AbstractTask

`addValidator, appendParallelSafeAction, compareTo, configure, deleteAllActions, dependsOn, dependsOnTaskDidWork, doFirst, doFirst, doFirst, doLast, doLast, doLast, execute, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExecuter, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTemporaryDir, getTemporaryDirFactory, getValidators, hasProperty, injectIntoNewInstance, isEnabled, isHasCustomActions, leftShift, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setExecuter, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### CreateStartScripts

public CreateStartScripts()