# 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.
- `gitRef` - See getGitRef.
- `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
@get:Nullable
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
@get:Nullable
open var group: @Nullable String
impliesSubProjects
Link copied to clipboard
open var impliesSubProjects: Boolean
modularity
Link copied to clipboard
val modularity: ModularitySpec
optsEnvironmentVar
Link copied to clipboard
@get:Nullable
@get:Optional
@get:Input
open var optsEnvironmentVar: String
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"
Constructor arguments for the Task
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
open fun compareTo(otherTask: Task): Int
configure
Link copied to clipboard
open fun configure(closure: Closure): Task
abstract fun configure(configureClosure: Closure): Task
open fun configure(closure: Closure): Task
Applies the statements of the closure against this task object.
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
open fun dependsOn(paths: Array<Any>): Task
Adds the given dependencies to this task.
doFirst
Link copied to clipboard
open fun doFirst(action: Closure): Task
abstract fun doFirst(@DelegatesTo(value = Task::class) action: Closure): Task
Adds the given closure to the beginning of this task's action list.
open fun doFirst(action: Action<in Task>): Task
open fun doFirst(actionName: String, action: Action<in Task>): Task
open fun doFirst(action: Action<in Task>): Task
Adds the given Action to the beginning of this task's action list.
doLast
Link copied to clipboard
open fun doLast(action: Closure): Task
abstract fun doLast(@DelegatesTo(value = Task::class) action: Closure): Task
Adds the given closure to the end of this task's action list.
open fun doLast(action: Action<in Task>): Task
open fun doLast(actionName: String, action: Action<in Task>): Task
open fun doLast(action: Action<in Task>): Task
Adds the given Action to the end of this task's action list.
doNotTrackState
Link copied to clipboard
abstract fun doNotTrackState(reasonNotToTrackState: String)
open fun doNotTrackState(reasonNotToTrackState: String)
Do not track the state of the task.
doNotTrackStateIf
Link copied to clipboard
open fun doNotTrackStateIf(reason: String, spec: Spec<in TaskInternal>)
finalizedBy
Link copied to clipboard
open fun finalizedBy(paths: Array<Any>): Task
open fun finalizedBy(paths: Array<Any>): Task
Adds the given finalizer tasks for this task.
generate
Link copied to clipboard
open fun generate()
getActions
Link copied to clipboard
open fun getActions(): List<Action<in Task>>
open fun getActions(): List<Action<in Task>>
Returns the sequence of Action objects which will be executed by this task, in the order of execution.
getAnt
Link copied to clipboard
open fun getAnt(): AntBuilder
open fun getAnt(): AntBuilder
Returns the `AntBuilder` for this task.
getAsDynamicObject
Link copied to clipboard
open fun getAsDynamicObject(): DynamicObject
getDependsOn
Link copied to clipboard
open fun getDependsOn(): Set<Any>
open fun getDependsOn(): Set<Any>
Returns the dependencies of this task.
getDestroyables
Link copied to clipboard
open fun getDestroyables(): TaskDestroyables
open fun getDestroyables(): TaskDestroyables
Returns the destroyables of this task.
getDidWork
Link copied to clipboard
open fun getDidWork(): Boolean
open fun getDidWork(): Boolean
Checks if the task actually did any work.
getExtensions
Link copied to clipboard
open fun getExtensions(): ExtensionContainer
open fun getExtensions(): ExtensionContainer
The container of extensions.
getFinalizedBy
Link copied to clipboard
open fun getFinalizedBy(): TaskDependency
open fun getFinalizedBy(): TaskDependency
Returns tasks that finalize this task.
getGitRef
Link copied to clipboard
@Incubating
@Optional
@Input
abstract fun getGitRef(): Property<String>
The Git revision or tag.
getIdentityPath
Link copied to clipboard
open fun getIdentityPath(): Path
getInputs
Link copied to clipboard
open fun getInputs(): TaskInputsInternal
@Internal
abstract fun getInputs(): TaskInputs
open fun getInputs(): TaskInputsInternal
Returns the inputs of this task.
getLifecycleDependencies
Link copied to clipboard
open fun getLifecycleDependencies(): TaskDependencyInternal
abstract fun getLifecycleDependencies(): TaskDependency
getLocalState
Link copied to clipboard
open fun getLocalState(): TaskLocalState
open fun getLocalState(): TaskLocalState
Returns the local state of this task.
getLogger
Link copied to clipboard
open fun getLogger(): Logger
open fun getLogger(): Logger
Returns the logger for this task.
getLogging
Link copied to clipboard
open fun getLogging(): LoggingManager
open fun getLogging(): LoggingManager
Returns the org.gradle.api.logging.LoggingManager which can be used to receive logging and to control the standard output/error capture for this task.
getMainClass
Link copied to clipboard
@Optional
@Input
abstract fun getMainClass(): Property<String>
The main class name used to start the Java application.
getMainModule
Link copied to clipboard
@Optional
@Input
abstract fun getMainModule(): Property<String>
The main module name used to start the modular Java application.
getMustRunAfter
Link copied to clipboard
open fun getMustRunAfter(): TaskDependency
open fun getMustRunAfter(): TaskDependency
Returns tasks that this task must run after.
getName
Link copied to clipboard
open fun getName(): String
open fun getName(): String
Returns the name of this task.
getOnlyIf
Link copied to clipboard
open fun getOnlyIf(): Spec<in TaskInternal>
getOutputDir
Link copied to clipboard
@ReplacedBy(value = "outputDirectory")
@Nullable
open fun getOutputDir(): @Nullable File
The directory to write the scripts into.
getOutputDirectory
Link copied to clipboard
@Incubating
@OutputDirectory
abstract fun getOutputDirectory(): DirectoryProperty
The directory to write the scripts into.
getOutputs
Link copied to clipboard
open fun getOutputs(): TaskOutputsInternal
@Internal
abstract fun getOutputs(): TaskOutputs
open fun getOutputs(): TaskOutputsInternal
Returns the outputs of this task.
getPath
Link copied to clipboard
open fun getPath(): String
open fun getPath(): String
Returns the path of the task, which is a fully qualified name for the task.
getProject
Link copied to clipboard
open fun getProject(): Project
open fun getProject(): Project
Returns the Project which this task belongs to.
getReasonNotToTrackState
Link copied to clipboard
open fun getReasonNotToTrackState(): Optional<String>
getReasonsNotToTrackState
Link copied to clipboard
open fun getReasonsNotToTrackState(): Set<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
open fun getShouldRunAfter(): TaskDependency
Returns tasks that this task should run after.
getStandardOutputCapture
Link copied to clipboard
open fun getStandardOutputCapture(): StandardOutputCapture
getState
Link copied to clipboard
@Internal
abstract fun getState(): TaskState
Returns the execution state of this task.
getTaskActions
Link copied to clipboard
open fun getTaskActions(): List<InputChangesAwareTaskAction>
getTaskDependencies
Link copied to clipboard
open fun getTaskDependencies(): TaskDependencyInternal
@Internal
abstract fun getTaskDependencies(): TaskDependency
open fun getTaskDependencies(): TaskDependencyInternal
Returns a TaskDependency which contains all the tasks that this task depends on.
getTaskIdentity
Link copied to clipboard
open fun getTaskIdentity(): TaskIdentity<out Any>
getTemporaryDir
Link copied to clipboard
open fun getTemporaryDir(): File
open fun getTemporaryDir(): File
Returns a directory which this task can use to write temporary files to.
getTemporaryDirFactory
Link copied to clipboard
open fun getTemporaryDirFactory(): Factory<File>
getUnixScript
Link copied to clipboard
@ReplacedBy(value = "unixScriptFile")
open fun getUnixScript(): File
Returns the full path to the Unix script.
getUnixScriptFile
Link copied to clipboard
@Incubating
@Internal
abstract fun getUnixScriptFile(): RegularFileProperty
Returns the full path to the Unix script.
getWindowsScript
Link copied to clipboard
@ReplacedBy(value = "windowsScriptFile")
open fun getWindowsScript(): File
Returns the full path to the Windows script.
getWindowsScriptFile
Link copied to clipboard
@Incubating
@Internal
abstract fun getWindowsScriptFile(): RegularFileProperty
Returns the full path to the Windows script.
hasProperty
Link copied to clipboard
open fun hasProperty(propertyName: String): Boolean
open fun hasProperty(propertyName: String): Boolean
Determines if this task has the given property.
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
open fun mustRunAfter(paths: Array<Any>): Task
Specifies that this task must run after all of the supplied tasks.
notCompatibleWithConfigurationCache
Link copied to clipboard
abstract fun notCompatibleWithConfigurationCache(reason: String)
open fun notCompatibleWithConfigurationCache(reason: String)
Specifies that this task is not compatible with the configuration cache.
onlyIf
Link copied to clipboard
open fun onlyIf(onlyIfClosure: Closure)
abstract fun onlyIf(onlyIfClosure: Closure<out Any>)
open fun onlyIf(onlyIfClosure: Closure)
Execute the task only if the given closure returns true.
open fun onlyIf(spec: Spec<in Task>)
open fun onlyIf(onlyIfReason: String, spec: Spec<in Task>)
abstract fun onlyIf(onlyIfSpec: Spec<in Task>)
@Incubating
abstract fun onlyIf(onlyIfReason: String, onlyIfSpec: Spec<in Task>)
Execute the task only if the given spec is satisfied.
prependParallelSafeAction
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task>)
property
Link copied to clipboard
open fun property(propertyName: String): Any
open fun property(propertyName: String): Any
Returns the value of the given property of this task.
restoreOnlyIf
Link copied to clipboard
open fun restoreOnlyIf(onlyIf: Spec<in TaskInternal>)
restoreTaskActions
Link copied to clipboard
open fun restoreTaskActions(taskActions: List<InputChangesAwareTaskAction>)
setActions
Link copied to clipboard
open fun setActions(replacements: List<Action<in Task>>)
abstract fun setActions(actions: List<Action<in Task>>)
open fun setActions(replacements: List<Action<in Task>>)
Sets the sequence of Action objects which will be executed by this task.
setDependsOn
Link copied to clipboard
open fun setDependsOn(dependsOn: Iterable<out Any>)
abstract fun setDependsOn(dependsOnTasks: Iterable<out Any>)
open fun setDependsOn(dependsOn: Iterable<out Any>)
Sets the dependencies of this task.
setDidWork
Link copied to clipboard
open fun setDidWork(didWork: Boolean)
open fun setDidWork(didWork: Boolean)
Sets whether the task actually did any work.
setFinalizedBy
Link copied to clipboard
open fun setFinalizedBy(finalizedByTasks: Iterable<out Any>)
abstract fun setFinalizedBy(finalizedBy: Iterable<out Any>)
open fun setFinalizedBy(finalizedByTasks: Iterable<out Any>)
Specifies the set of finalizer tasks for this task.
setMustRunAfter
Link copied to clipboard
open fun setMustRunAfter(mustRunAfterTasks: Iterable<out Any>)
abstract fun setMustRunAfter(mustRunAfter: Iterable<out Any>)
open fun setMustRunAfter(mustRunAfterTasks: Iterable<out Any>)
Specifies the set of tasks that this task must run after.
setOnlyIf
Link copied to clipboard
open fun setOnlyIf(onlyIfClosure: Closure)
abstract fun setOnlyIf(onlyIfClosure: Closure<out Any>)
Execute the task only if the given closure returns true.
open fun setOnlyIf(spec: Spec<in Task>)
open fun setOnlyIf(onlyIfReason: String, spec: Spec<in Task>)
abstract fun setOnlyIf(onlyIfSpec: Spec<in Task>)
@Incubating
abstract fun setOnlyIf(onlyIfReason: String, onlyIfSpec: Spec<in Task>)
open fun setOnlyIf(spec: Spec<in Task>)
Execute the task only if the given spec is satisfied.
setOutputDir
Link copied to clipboard
open fun setOutputDir(@Nullable outputDir: @Nullable File)
setProperty
Link copied to clipboard
open fun setProperty(name: String, value: Any)
open fun setProperty(name: String, value: Any)
Sets a property of this task.
setShouldRunAfter
Link copied to clipboard
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<out Any>)
abstract fun setShouldRunAfter(shouldRunAfter: Iterable<out Any>)
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<out Any>)
Specifies the set of tasks that this task should run after.
shouldRunAfter
Link copied to clipboard
open fun shouldRunAfter(paths: Array<Any>): TaskDependency
open fun shouldRunAfter(paths: Array<Any>): TaskDependency
Specifies that this task should run after all of the supplied tasks.
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>>)
open fun usesService(service: Provider<out BuildService<out Any>>)
Registers a BuildService that is used by this task so its constraint on parallel execution can be honored.