Class GosuCompile
- java.lang.Object
-
- org.gradle.api.internal.AbstractTask
-
- org.gradle.api.DefaultTask
-
- org.gradle.api.internal.ConventionTask
-
- org.gradle.api.tasks.SourceTask
-
- org.gradle.api.tasks.compile.AbstractCompile
-
- org.gosulang.gradle.tasks.compile.GosuCompile
-
- All Implemented Interfaces:
java.lang.Comparable<org.gradle.api.Task>,InfersGosuRuntime,org.gradle.api.internal.DynamicObjectAware,org.gradle.api.internal.IConventionAware,org.gradle.api.internal.TaskInternal,org.gradle.api.plugins.ExtensionAware,org.gradle.api.Task,org.gradle.api.tasks.util.PatternFilterable,org.gradle.util.Configurable<org.gradle.api.Task>
@CacheableTask public class GosuCompile extends org.gradle.api.tasks.compile.AbstractCompile implements InfersGosuRuntime
-
-
Constructor Summary
Constructors Constructor Description GosuCompile()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcompile(org.gradle.work.InputChanges inputChanges)org.gradle.api.file.FileCollectiongetClasspath()We override in order to apply theCompileClasspath, in order to ignore changes in JAR'd resources.java.io.FilegetDependencyFile()The gosuc dependency-tracking file.groovy.lang.Closure<org.gradle.api.file.FileCollection>getGosuClasspath()GosuCompileOptionsgetGosuOptions()org.gradle.api.file.FileCollectiongetJavaClassesDir()Returns the Java classes output directory for fine-grained change tracking.org.gradle.api.tasks.compile.CompileOptionsgetOptions()groovy.lang.Closure<org.gradle.api.file.FileCollection>getOrderClasspath()Annotating as @Input or @InputFiles causes errors in Guidewire applications, even when paired with @Optional.org.gradle.api.file.FileTreegetSource()org.gradle.api.file.FileCollectiongetSourceRoots()org.gradle.api.file.FileCollectiongetStableSources()voidsetClasspath(org.gradle.api.file.FileCollection configuration)Override setClasspath to defensively filter out javaClassesDir whenever the classpath is set.voidsetGosuClasspath(groovy.lang.Closure<org.gradle.api.file.FileCollection> gosuClasspathClosure)voidsetJavaClassesDir(org.gradle.api.file.FileCollection javaClassesDir)Sets the Java classes output directory for fine-grained change tracking.voidsetOrderClasspath(groovy.lang.Closure<org.gradle.api.file.FileCollection> orderClasspath)Normally setting this value is not required.-
Methods inherited from class org.gradle.api.tasks.compile.AbstractCompile
getDestinationDir, getDestinationDirectory, getSourceCompatibility, getTargetCompatibility, setDestinationDir, setDestinationDir, setSourceCompatibility, setTargetCompatibility
-
Methods inherited from class org.gradle.api.tasks.SourceTask
exclude, exclude, exclude, exclude, getExcludes, getIncludes, getPatternSet, getPatternSetFactory, include, include, include, include, setExcludes, setIncludes, setSource, setSource, source
-
Methods inherited from class org.gradle.api.internal.ConventionTask
conventionMapping, conventionMapping, getConventionMapping
-
Methods inherited from class org.gradle.api.DefaultTask
compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService
-
Methods inherited from class org.gradle.api.internal.AbstractTask
acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects
-
-
-
-
Method Detail
-
compile
protected void compile(org.gradle.work.InputChanges inputChanges)
-
getSource
@PathSensitive(NAME_ONLY) public org.gradle.api.file.FileTree getSource()
- Overrides:
getSourcein classorg.gradle.api.tasks.SourceTask
-
getStableSources
@PathSensitive(NAME_ONLY) @InputFiles @Incremental public org.gradle.api.file.FileCollection getStableSources()
-
getJavaClassesDir
@CompileClasspath @Incremental @Optional public org.gradle.api.file.FileCollection getJavaClassesDir()
Returns the Java classes output directory for fine-grained change tracking. This tracks the compileJava task's output directory to detect which specific Java class files have changed (ABI changes only, not implementation changes). Configured by GosuBasePlugin using the SourceSet's Java output directory.- Returns:
- FileCollection pointing to the Java classes output directory
-
setJavaClassesDir
public void setJavaClassesDir(org.gradle.api.file.FileCollection javaClassesDir)
Sets the Java classes output directory for fine-grained change tracking. This should be called by GosuBasePlugin during task configuration.- Parameters:
javaClassesDir- FileCollection pointing to the Java classes output directory
-
getGosuOptions
public GosuCompileOptions getGosuOptions()
- Returns:
- Gosu-specific compilation options.
-
getOptions
public org.gradle.api.tasks.compile.CompileOptions getOptions()
-
getClasspath
@CompileClasspath public org.gradle.api.file.FileCollection getClasspath()
We override in order to apply theCompileClasspath, in order to ignore changes in JAR'd resources. Also filters out javaClassesDir to prevent local .class file changes from triggering full rebuilds.This filtering ONLY applies when incremental compilation is configured (i.e., when javaClassesDir is set). When javaClassesDir is not set, the classpath is returned unmodified for backwards compatibility.
- Overrides:
getClasspathin classorg.gradle.api.tasks.compile.AbstractCompile
-
setClasspath
public void setClasspath(org.gradle.api.file.FileCollection configuration)
Override setClasspath to defensively filter out javaClassesDir whenever the classpath is set. This ensures that even if gradle-plugins or other code explicitly sets a classpath that includes local .class files, they will be filtered out for Gradle's input tracking purposes.This filtering ONLY applies when incremental compilation is configured (i.e., when javaClassesDir is set). When javaClassesDir is not set, the classpath is stored unmodified for backwards compatibility.
- Overrides:
setClasspathin classorg.gradle.api.tasks.compile.AbstractCompile
-
getGosuClasspath
@Classpath @InputFiles public groovy.lang.Closure<org.gradle.api.file.FileCollection> getGosuClasspath()
- Specified by:
getGosuClasspathin interfaceInfersGosuRuntime- Returns:
- the classpath to use to load the Gosu compiler.
-
setGosuClasspath
public void setGosuClasspath(groovy.lang.Closure<org.gradle.api.file.FileCollection> gosuClasspathClosure)
- Specified by:
setGosuClasspathin interfaceInfersGosuRuntime
-
getOrderClasspath
@Internal public groovy.lang.Closure<org.gradle.api.file.FileCollection> getOrderClasspath()
Annotating as @Input or @InputFiles causes errors in Guidewire applications, even when paired with @Optional. Marking as @Internal instead to skip warning thrown by :validateTaskProperties (org.gradle.plugin.devel.tasks.ValidateTaskProperties)- Returns:
- a Closure returning a classpath to be passed to the GosuCompile task
-
setOrderClasspath
public void setOrderClasspath(groovy.lang.Closure<org.gradle.api.file.FileCollection> orderClasspath)
Normally setting this value is not required. Certain projects relying on depth-first resolution of module dependencies can use this Closure to reorder the classpath as needed.- Parameters:
orderClasspath- a Closure returning a classpath to be passed to the GosuCompile task
-
getSourceRoots
@Internal public org.gradle.api.file.FileCollection getSourceRoots()
-
getDependencyFile
@OutputFile public java.io.File getDependencyFile()
The gosuc dependency-tracking file. Declared @OutputFile so Gradle caches it alongside the .class files - on a FROM_CACHE restore the dep file returns to disk and the next incremental compileGosu can use it as a baseline graph instead of falling back to a full rebuild. Path is derived from the task name; not user-configurable.
-
-