# CreateStartScripts

@DisableCachingByDefault(because = "Not worth caching")
abstract class CreateStartScripts : ConventionTask(source)

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

Content copied to clipboard

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

Content copied to clipboard

The default generators are of the type TemplateBasedScriptGenerator, with default templates. This templates can be changed via the setTemplate method.

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

- `applicationName` - See getApplicationName.
- `optsEnvironmentVar` - See getOptsEnvironmentVar.
- `exitEnvironmentVar` - See getExitEnvironmentVar.
- `moduleEntryPoint` - The module entry point, or `null` if none. Will also include the main class name if present, in the form `[moduleName]/[className]`.
- `mainClassName` - The main class name, or usually `""` if none. For legacy reasons, this may be set to `--module [moduleEntryPoint]` when using a main module. This behavior should not be relied upon and may be removed in a future release.
- `entryPointArgs` - The arguments to be used on the command-line to enter the application, as a joined string. It should be inserted before the program arguments.
- `defaultJvmOpts` - See getDefaultJvmOpts.
- `appNameSystemProperty` - See getAppNameSystemProperty.
- `appHomeRelativePath` - The path, relative to the script's own path, of the app home.
- `classpath` - See getClasspath. It is already encoded as a joined string.
- `modulePath` (different capitalization) - See getModulePath. It is already encoded as a joined string.

The encoded paths expect a variable named `APP_HOME` to be present in the script, set to the application home directory which can be resolved using `appHomeRelativePath`.

Example:

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

Content copied to clipboard

#### Inheritors

CreateStartScripts

## Constructors

CreateStartScripts
Link copied to clipboard
constructor()

## Properties

applicationName
Link copied to clipboard
@get:Nullable
@get:Input
open var applicationName: String
classpath
Link copied to clipboard
@get:Nullable
@get:Classpath
@get:Optional
open var classpath: FileCollection
conventionMapping
Link copied to clipboard
open val conventionMapping: @Nullable ConventionMapping
defaultJvmOpts
Link copied to clipboard
@get:Nullable
@get:Optional
@get:Input
open var defaultJvmOpts: Iterable<String>
description
Link copied to clipboard
open var description: @Nullable String
enabled
Link copied to clipboard
open var enabled: Boolean
executableDir
Link copied to clipboard
@get:Input
open var executableDir: String
exitEnvironmentVar
Link copied to clipboard
@get:Nullable
@get:Optional
@get:Input
open var exitEnvironmentVar: String
extra
Link copied to clipboard
val ExtensionAware.extra: ExtraPropertiesExtension

The extra properties extension in this object's extension container.

group
Link copied to clipboard
open var group: @Nullable String
impliesSubProjects
Link copied to clipboard
open var impliesSubProjects: Boolean
mainClass
Link copied to clipboard
@get:Optional
@get:Input
val mainClass: Property<String>
mainModule
Link copied to clipboard
@get:Optional
@get:Input
val mainModule: Property<String>
modularity
Link copied to clipboard
val modularity: ModularitySpec
optsEnvironmentVar
Link copied to clipboard
@get:Nullable
@get:Optional
@get:Input
open var optsEnvironmentVar: String
outputDir
Link copied to clipboard
@get:OutputDirectory
@get:Nullable
open var outputDir: File
state
Link copied to clipboard
val state: TaskStateInternal
TASK_ACTION
Link copied to clipboard
val TASK_ACTION: String = "action"
TASK_CONSTRUCTOR_ARGS
Link copied to clipboard
val TASK_CONSTRUCTOR_ARGS: String = "constructorArgs"
TASK_DEPENDS_ON
Link copied to clipboard
val TASK_DEPENDS_ON: String = "dependsOn"
TASK_DESCRIPTION
Link copied to clipboard
val TASK_DESCRIPTION: String = "description"
TASK_GROUP
Link copied to clipboard
val TASK_GROUP: String = "group"
TASK_NAME
Link copied to clipboard
val TASK_NAME: String = "name"
TASK_OVERWRITE
Link copied to clipboard
val TASK_OVERWRITE: String = "overwrite"
TASK_TYPE
Link copied to clipboard
val TASK_TYPE: String = "type"
timeout
Link copied to clipboard
val timeout: Property<Duration>
unixStartScriptGenerator
Link copied to clipboard
open var unixStartScriptGenerator: ScriptGenerator
windowsStartScriptGenerator
Link copied to clipboard
open var windowsStartScriptGenerator: ScriptGenerator

## Functions

acceptServiceReferences
Link copied to clipboard
open fun acceptServiceReferences(serviceReferences: Set<ServiceReferenceSpec>)
appendParallelSafeAction
Link copied to clipboard
open fun appendParallelSafeAction(action: Action<in Task>)
compareTo
Link copied to clipboard
open fun compareTo(otherTask: Task): Int
configure
Link copied to clipboard
open fun configure(closure: Closure): Task
abstract fun configure(cl: Closure): T
configure
Link copied to clipboard
inline fun <T : Any> ExtensionAware.configure(noinline configuration: T.() -> Unit)

Executes the given configuration block against the extension of the specified type.

conventionMapping
Link copied to clipboard
open fun conventionMapping(property: String, mapping: Callable<out Any>): Task
dependsOn
Link copied to clipboard
open fun dependsOn(paths: Array<Any>): Task
doFirst
Link copied to clipboard
open fun doFirst(action: Action<in Task>): Task
doLast
Link copied to clipboard
open fun doLast(action: Action<in Task>): Task
doNotTrackState
Link copied to clipboard
open fun doNotTrackState(reasonNotToTrackState: String)
finalizedBy
Link copied to clipboard
open fun finalizedBy(paths: Array<Any>): Task
generate
Link copied to clipboard
open fun generate()
getActions
Link copied to clipboard
open fun getActions(): List<Action<in Task>>
getAnt
Link copied to clipboard
open fun getAnt(): AntBuilder
getAsDynamicObject
Link copied to clipboard
open fun getAsDynamicObject(): DynamicObject
getDependsOn
Link copied to clipboard
open fun getDependsOn(): Set<Any>
getDestroyables
Link copied to clipboard
open fun getDestroyables(): TaskDestroyables
getDidWork
Link copied to clipboard
open fun getDidWork(): Boolean
getExtensions
Link copied to clipboard
open fun getExtensions(): ExtensionContainer
getFinalizedBy
Link copied to clipboard
open fun getFinalizedBy(): TaskDependency
getIdentityPath
Link copied to clipboard
open fun getIdentityPath(): Path
getInputs
Link copied to clipboard
open fun getInputs(): TaskInputsInternal
abstract fun getInputs(): TaskInputs
getLifecycleDependencies
Link copied to clipboard
open fun getLifecycleDependencies(): TaskDependencyInternal
abstract fun getLifecycleDependencies(): TaskDependency
getLocalState
Link copied to clipboard
open fun getLocalState(): TaskLocalState
getLogger
Link copied to clipboard
open fun getLogger(): Logger
getLogging
Link copied to clipboard
open fun getLogging(): LoggingManager
getMustRunAfter
Link copied to clipboard
open fun getMustRunAfter(): TaskDependency
getName
Link copied to clipboard
open fun getName(): String
getOnlyIf
Link copied to clipboard
open fun getOnlyIf(): Spec<in TaskInternal>
getOutputs
Link copied to clipboard
open fun getOutputs(): TaskOutputsInternal
abstract fun getOutputs(): TaskOutputs
getPath
Link copied to clipboard
open fun getPath(): String
getProject
Link copied to clipboard
open fun getProject(): Project
getReasonNotToTrackState
Link copied to clipboard
open fun getReasonNotToTrackState(): Optional<String>
getReasonTaskIsIncompatibleWithConfigurationCache
Link copied to clipboard
open fun getReasonTaskIsIncompatibleWithConfigurationCache(): Optional<String>
getRequiredServices
Link copied to clipboard
open fun getRequiredServices(): TaskRequiredServices
getSharedResources
Link copied to clipboard
open fun getSharedResources(): List<ResourceLock>
abstract fun getSharedResources(): List<out ResourceLock>
getShouldRunAfter
Link copied to clipboard
open fun getShouldRunAfter(): TaskDependency
getStandardOutputCapture
Link copied to clipboard
open fun getStandardOutputCapture(): StandardOutputCapture
getState
Link copied to clipboard
abstract fun getState(): TaskState
getTaskActions
Link copied to clipboard
open fun getTaskActions(): List<InputChangesAwareTaskAction>
getTaskDependencies
Link copied to clipboard
open fun getTaskDependencies(): TaskDependencyInternal
abstract fun getTaskDependencies(): TaskDependency
getTaskIdentity
Link copied to clipboard
open fun getTaskIdentity(): TaskIdentity<out Any>
getTemporaryDir
Link copied to clipboard
open fun getTemporaryDir(): File
getTemporaryDirFactory
Link copied to clipboard
open fun getTemporaryDirFactory(): Factory<File>
getUnixScript
Link copied to clipboard
@Internal
open fun getUnixScript(): File
Returns the full path to the Unix script.
getWindowsScript
Link copied to clipboard
@Internal
open fun getWindowsScript(): File
Returns the full path to the Windows script.
hasProperty
Link copied to clipboard
open fun hasProperty(propertyName: String): Boolean
hasTaskActions
Link copied to clipboard
open fun hasTaskActions(): Boolean
injectIntoNewInstance
Link copied to clipboard
open fun <T : Task?> injectIntoNewInstance(project: ProjectInternal, identity: TaskIdentity<T>, factory: Callable<T>): T
isCompatibleWithConfigurationCache
Link copied to clipboard
open fun isCompatibleWithConfigurationCache(): Boolean
isEnabled
Link copied to clipboard
open fun isEnabled(): Boolean
isHasCustomActions
Link copied to clipboard
open fun isHasCustomActions(): Boolean
mustRunAfter
Link copied to clipboard
open fun mustRunAfter(paths: Array<Any>): Task
notCompatibleWithConfigurationCache
Link copied to clipboard
open fun notCompatibleWithConfigurationCache(reason: String)
onlyIf
Link copied to clipboard
open fun onlyIf(spec: Spec<in Task>)
prependParallelSafeAction
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task>)
property
Link copied to clipboard
open fun property(propertyName: String): Any
setActions
Link copied to clipboard
open fun setActions(replacements: List<Action<in Task>>)
setDependsOn
Link copied to clipboard
open fun setDependsOn(dependsOn: Iterable<out Any>)
setDidWork
Link copied to clipboard
open fun setDidWork(didWork: Boolean)
setFinalizedBy
Link copied to clipboard
open fun setFinalizedBy(finalizedByTasks: Iterable<out Any>)
setMustRunAfter
Link copied to clipboard
open fun setMustRunAfter(mustRunAfterTasks: Iterable<out Any>)
setOnlyIf
Link copied to clipboard
open fun setOnlyIf(spec: Spec<in Task>)
setProperty
Link copied to clipboard
open fun setProperty(name: String, value: Any)
setShouldRunAfter
Link copied to clipboard
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<out Any>)
shouldRunAfter
Link copied to clipboard
open fun shouldRunAfter(paths: Array<Any>): TaskDependency
the
Link copied to clipboard
inline fun <T : Any> ExtensionAware.the(): T

Returns the extension of the specified type.

fun <T : Any> ExtensionAware.the(extensionType: KClass<T>): T

Returns the extension of the specified extensionType.

usesService
Link copied to clipboard
open fun usesService(service: Provider<out BuildService<out Any>>)