Interface JavaPluginExtension
JavaBasePlugin
and would be more appropriately named
the JvmPluginExtension
extension. It is used to configure many of the project's
JVM-related settings and behavior.- Since:
- 4.10
-
Method Summary
Modifier and TypeMethodDescriptionvoid
consistentResolution
(Action<? super JavaResolutionConsistency> action) Configure the dependency resolution consistency for this Java project.void
If this method is called, Gradle will not automatically try to fetch dependencies which have a JVM version compatible with the target compatibility of this module.boolean
Tells if automatic JVM targeting is enabled.Returns a file pointing to the root directory supposed to be used for all docs.Configure the module path handling for tasks that have a 'classpath' as input.Returns the source compatibility used for compiling Java sources.The source sets container.Returns the target compatibility used for compiling Java sources.Returns a file pointing to the root directory to be used for reports.Returns a file pointing to the root directory of the test results.Gets the project wide toolchain requirements that will be used for tasks requiring a tool from the toolchain (e.g.manifest()
Creates a new instance of aManifest
.Creates and configures a new instance of aManifest
.Creates and configures a new instance of aManifest
.void
registerFeature
(String name, Action<? super FeatureSpec> configureAction) Registers a feature.void
setSourceCompatibility
(Object value) Sets the source compatibility used for compiling Java sources.void
Sets the source compatibility used for compiling Java sources.void
setTargetCompatibility
(Object value) Sets the target compatibility used for compiling Java sources.void
Sets the target compatibility used for compiling Java sources.sourceSets
(Closure closure) Configures the source sets of this project.toolchain
(Action<? super JavaToolchainSpec> action) Configures the project wide toolchain requirements for tasks that require a tool from the toolchain (e.g.void
Adds a taskjavadocJar
that will package the output of thejavadoc
task in a JAR with classifierjavadoc
.void
Adds a tasksourcesJar
that will package the Java sources of the mainSourceSet
in a JAR with classifiersources
.
-
Method Details
-
getSourceCompatibility
JavaVersion getSourceCompatibility()Returns the source compatibility used for compiling Java sources. -
setSourceCompatibility
Sets the source compatibility used for compiling Java sources.This property cannot be set if a
toolchain
has been configured.- Parameters:
value
- The value for the source compatibility- See Also:
-
getTargetCompatibility
JavaVersion getTargetCompatibility()Returns the target compatibility used for compiling Java sources. -
setTargetCompatibility
Sets the target compatibility used for compiling Java sources.This property cannot be set if a
toolchain
has been configured.- Parameters:
value
- The value for the target compatibility- See Also:
-
registerFeature
Registers a feature.The new feature will have a default capability corresponding to the "group", "name" + feature name and version of this project. For example, if the group of the component is "org", that the project name is "lib" the version is "1.0" and the feature name is "myFeature", then a capability named "org:lib-my-feature:1.0" is automatically added.
In order to consume this feature in another module add a dependency like the following:
dependencies { implementation(project(":lib")) { capabilities { requireCapability("org:lib-my-feature:1.0") } } }
TheFeatureSpec.capability(String, String, String)
method can be used to refine the capabilities of this feature.- Parameters:
name
- the name of the featureconfigureAction
- the configuration for the feature- Since:
- 5.3
-
disableAutoTargetJvm
void disableAutoTargetJvm()If this method is called, Gradle will not automatically try to fetch dependencies which have a JVM version compatible with the target compatibility of this module.This should be used whenever the default behavior is not applicable, in particular when for some reason it's not possible to split a module and that this module only has some classes which require dependencies on higher versions.
- Since:
- 5.3
-
withJavadocJar
void withJavadocJar()Adds a taskjavadocJar
that will package the output of thejavadoc
task in a JAR with classifierjavadoc
.The produced artifact is registered as a documentation variant on the
java
component and added as a dependency on theassemble
task. This means that ifmaven-publish
orivy-publish
is also applied, the javadoc JAR will be published.If the project already has a task named
javadocJar
then no task is created.The publishing of the Javadoc variant can also be disabled using
ConfigurationVariantDetails.skip()
throughAdhocComponentWithVariants.withVariantsFromConfiguration(Configuration, Action)
, if it should only be built locally by calling or wiring the ':javadocJar' task.- Since:
- 6.0
-
withSourcesJar
void withSourcesJar()Adds a tasksourcesJar
that will package the Java sources of the mainSourceSet
in a JAR with classifiersources
.The produced artifact is registered as a documentation variant on the
java
component and added as a dependency on theassemble
task. This means that ifmaven-publish
orivy-publish
is also applied, the sources JAR will be published.If the project already has a task named
sourcesJar
then no task is created.The publishing of the sources variant can be disabled using
ConfigurationVariantDetails.skip()
throughAdhocComponentWithVariants.withVariantsFromConfiguration(Configuration, Action)
, if it should only be built locally by calling or wiring the ':sourcesJar' task.- Since:
- 6.0
-
getModularity
ModularitySpec getModularity()Configure the module path handling for tasks that have a 'classpath' as input. The module classpath handling defines to determine for each entry if it is passed to Java tools using '-classpath' or '--module-path'.- Since:
- 6.4
-
getToolchain
JavaToolchainSpec getToolchain()Gets the project wide toolchain requirements that will be used for tasks requiring a tool from the toolchain (e.g.JavaCompile
).Configuring a toolchain cannot be used together with
sourceCompatibility
ortargetCompatibility
on this extension. Both values will be sourced from the toolchain.- Since:
- 6.7
-
toolchain
Configures the project wide toolchain requirements for tasks that require a tool from the toolchain (e.g.JavaCompile
).Configuring a toolchain cannot be used together with
sourceCompatibility
ortargetCompatibility
on this extension. Both values will be sourced from the toolchain.- Since:
- 6.7
-
consistentResolution
Configure the dependency resolution consistency for this Java project.- Parameters:
action
- the configuration action- Since:
- 6.8
-
sourceSets
Configures the source sets of this project.The given closure is executed to configure the
SourceSetContainer
. TheSourceSetContainer
is passed to the closure as its delegate.See the example below how
SourceSet
'main' is accessed and how theSourceDirectorySet
'java' is configured to exclude some package from compilation.plugins { id 'java' } sourceSets { main { java { exclude 'some/unwanted/package/**' } } }
- Parameters:
closure
- The closure to execute.- Returns:
- NamedDomainObjectContainer<org.gradle.api.tasks.SourceSet>
- Since:
- 7.1
-
getDocsDir
DirectoryProperty getDocsDir()Returns a file pointing to the root directory supposed to be used for all docs.- Since:
- 7.1
-
getTestResultsDir
DirectoryProperty getTestResultsDir()Returns a file pointing to the root directory of the test results.- Since:
- 7.1
-
getTestReportDir
DirectoryProperty getTestReportDir()Returns a file pointing to the root directory to be used for reports.- Since:
- 7.1
-
setSourceCompatibility
Sets the source compatibility used for compiling Java sources.- Parameters:
value
- The value for the source compatibility as defined byJavaVersion.toVersion(Object)
- Since:
- 7.1
-
setTargetCompatibility
Sets the target compatibility used for compiling Java sources.- Parameters:
value
- The value for the target compatibility as defined byJavaVersion.toVersion(Object)
- Since:
- 7.1
-
manifest
Manifest manifest()Creates a new instance of aManifest
.- Since:
- 7.1
-
manifest
Creates and configures a new instance of aManifest
. The given closure configures the new manifest instance before it is returned.- Parameters:
closure
- The closure to use to configure the manifest.- Since:
- 7.1
-
manifest
Creates and configures a new instance of aManifest
.- Parameters:
action
- The action to use to configure the manifest.- Since:
- 7.1
-
getSourceSets
SourceSetContainer getSourceSets()The source sets container.- Since:
- 7.1
-
getAutoTargetJvmDisabled
boolean getAutoTargetJvmDisabled()Tells if automatic JVM targeting is enabled. When disabled, Gradle will not automatically try to get dependencies corresponding to the same (or compatible) level as the target compatibility of this module.- Since:
- 7.1
-