ExtensionAware (Gradle API 8.14) (original) (raw)

All Known Subinterfaces:

[DependencyHandler](../artifacts/dsl/DependencyHandler.html "interface in org.gradle.api.artifacts.dsl"), [Gradle](../invocation/Gradle.html "interface in org.gradle.api.invocation"), [ObjectFilesToBinary](../../nativeplatform/tasks/ObjectFilesToBinary.html "interface in org.gradle.nativeplatform.tasks"), [Project](../Project.html "interface in org.gradle.api"), [Settings](../initialization/Settings.html "interface in org.gradle.api.initialization"), [SourceSet](../tasks/SourceSet.html "interface in org.gradle.api.tasks"), [Task](../Task.html "interface in org.gradle.api"), [ToolchainManagement](../toolchain/management/ToolchainManagement.html "interface in org.gradle.api.toolchain.management")

All Known Implementing Classes:

[AbstractArchiveTask](../tasks/bundling/AbstractArchiveTask.html "class in org.gradle.api.tasks.bundling"), [AbstractCodeQualityTask](quality/AbstractCodeQualityTask.html "class in org.gradle.api.plugins.quality"), [AbstractCompile](../tasks/compile/AbstractCompile.html "class in org.gradle.api.tasks.compile"), [AbstractConfigurationReportTask](../tasks/diagnostics/AbstractConfigurationReportTask.html "class in org.gradle.api.tasks.diagnostics"), [AbstractCopyTask](../tasks/AbstractCopyTask.html "class in org.gradle.api.tasks"), [AbstractDependencyReportTask](../tasks/diagnostics/AbstractDependencyReportTask.html "class in org.gradle.api.tasks.diagnostics"), [AbstractExecTask](../tasks/AbstractExecTask.html "class in org.gradle.api.tasks"), [AbstractLinkTask](../../nativeplatform/tasks/AbstractLinkTask.html "class in org.gradle.nativeplatform.tasks"), [AbstractNativeCompileTask](../../language/nativeplatform/tasks/AbstractNativeCompileTask.html "class in org.gradle.language.nativeplatform.tasks"), [AbstractNativePCHCompileTask](../../language/nativeplatform/tasks/AbstractNativePCHCompileTask.html "class in org.gradle.language.nativeplatform.tasks"), [AbstractNativeSourceCompileTask](../../language/nativeplatform/tasks/AbstractNativeSourceCompileTask.html "class in org.gradle.language.nativeplatform.tasks"), [AbstractProjectBasedReportTask](../tasks/diagnostics/AbstractProjectBasedReportTask.html "class in org.gradle.api.tasks.diagnostics"), [AbstractPublishToMaven](../publish/maven/tasks/AbstractPublishToMaven.html "class in org.gradle.api.publish.maven.tasks"), [AbstractReportTask](../tasks/diagnostics/AbstractReportTask.html "class in org.gradle.api.tasks.diagnostics"), [AbstractScalaCompile](../../language/scala/tasks/AbstractScalaCompile.html "class in org.gradle.language.scala.tasks"), org.gradle.api.internal.AbstractTask, [AbstractTestTask](../tasks/testing/AbstractTestTask.html "class in org.gradle.api.tasks.testing"), [AntlrTask](antlr/AntlrTask.html "class in org.gradle.api.plugins.antlr"), [AntTarget](../tasks/ant/AntTarget.html "class in org.gradle.api.tasks.ant"), [ArtifactTransformsReportTask](../tasks/diagnostics/ArtifactTransformsReportTask.html "class in org.gradle.api.tasks.diagnostics"), [Assemble](../../language/assembler/tasks/Assemble.html "class in org.gradle.language.assembler.tasks"), [BuildEnvironmentReportTask](../tasks/diagnostics/BuildEnvironmentReportTask.html "class in org.gradle.api.tasks.diagnostics"), [CCompile](../../language/c/tasks/CCompile.html "class in org.gradle.language.c.tasks"), [Checkstyle](quality/Checkstyle.html "class in org.gradle.api.plugins.quality"), [CodeNarc](quality/CodeNarc.html "class in org.gradle.api.plugins.quality"), [ComponentReport](../reporting/components/ComponentReport.html "class in org.gradle.api.reporting.components"), [ConventionReportTask](../tasks/diagnostics/ConventionReportTask.html "class in org.gradle.api.tasks.diagnostics"), org.gradle.api.internal.ConventionTask, [Copy](../tasks/Copy.html "class in org.gradle.api.tasks"), [CppCompile](../../language/cpp/tasks/CppCompile.html "class in org.gradle.language.cpp.tasks"), [CppPreCompiledHeaderCompile](../../language/cpp/tasks/CppPreCompiledHeaderCompile.html "class in org.gradle.language.cpp.tasks"), [CPreCompiledHeaderCompile](../../language/c/tasks/CPreCompiledHeaderCompile.html "class in org.gradle.language.c.tasks"), [CreateStartScripts](../tasks/application/CreateStartScripts.html "class in org.gradle.api.tasks.application"), [CreateStartScripts](../../jvm/application/tasks/CreateStartScripts.html "class in org.gradle.jvm.application.tasks"), [CreateStaticLibrary](../../nativeplatform/tasks/CreateStaticLibrary.html "class in org.gradle.nativeplatform.tasks"), [DefaultTask](../DefaultTask.html "class in org.gradle.api"), [Delete](../tasks/Delete.html "class in org.gradle.api.tasks"), [DependencyInsightReportTask](../tasks/diagnostics/DependencyInsightReportTask.html "class in org.gradle.api.tasks.diagnostics"), [DependencyReportTask](../tasks/diagnostics/DependencyReportTask.html "class in org.gradle.api.tasks.diagnostics"), [DependentComponentsReport](../reporting/dependents/DependentComponentsReport.html "class in org.gradle.api.reporting.dependents"), [Ear](../../plugins/ear/Ear.html "class in org.gradle.plugins.ear"), [Exec](../tasks/Exec.html "class in org.gradle.api.tasks"), [ExtractSymbols](../../nativeplatform/tasks/ExtractSymbols.html "class in org.gradle.nativeplatform.tasks"), [GenerateBuildDashboard](../reporting/GenerateBuildDashboard.html "class in org.gradle.api.reporting"), [GenerateCUnitLauncher](../../nativeplatform/test/cunit/tasks/GenerateCUnitLauncher.html "class in org.gradle.nativeplatform.test.cunit.tasks"), [GenerateEclipseClasspath](../../plugins/ide/eclipse/GenerateEclipseClasspath.html "class in org.gradle.plugins.ide.eclipse"), [GenerateEclipseJdt](../../plugins/ide/eclipse/GenerateEclipseJdt.html "class in org.gradle.plugins.ide.eclipse"), [GenerateEclipseProject](../../plugins/ide/eclipse/GenerateEclipseProject.html "class in org.gradle.plugins.ide.eclipse"), [GenerateEclipseWtpComponent](../../plugins/ide/eclipse/GenerateEclipseWtpComponent.html "class in org.gradle.plugins.ide.eclipse"), [GenerateEclipseWtpFacet](../../plugins/ide/eclipse/GenerateEclipseWtpFacet.html "class in org.gradle.plugins.ide.eclipse"), [GenerateFiltersFileTask](../../ide/visualstudio/tasks/GenerateFiltersFileTask.html "class in org.gradle.ide.visualstudio.tasks"), [GenerateIdeaModule](../../plugins/ide/idea/GenerateIdeaModule.html "class in org.gradle.plugins.ide.idea"), [GenerateIdeaProject](../../plugins/ide/idea/GenerateIdeaProject.html "class in org.gradle.plugins.ide.idea"), [GenerateIdeaWorkspace](../../plugins/ide/idea/GenerateIdeaWorkspace.html "class in org.gradle.plugins.ide.idea"), [GenerateIvyDescriptor](../publish/ivy/tasks/GenerateIvyDescriptor.html "class in org.gradle.api.publish.ivy.tasks"), [GenerateMavenPom](../publish/maven/tasks/GenerateMavenPom.html "class in org.gradle.api.publish.maven.tasks"), [GenerateModuleMetadata](../publish/tasks/GenerateModuleMetadata.html "class in org.gradle.api.publish.tasks"), [GeneratePluginDescriptors](../../plugin/devel/tasks/GeneratePluginDescriptors.html "class in org.gradle.plugin.devel.tasks"), [GenerateProjectFileTask](../../ide/visualstudio/tasks/GenerateProjectFileTask.html "class in org.gradle.ide.visualstudio.tasks"), [GenerateSchemeFileTask](../../ide/xcode/tasks/GenerateSchemeFileTask.html "class in org.gradle.ide.xcode.tasks"), [GenerateSolutionFileTask](../../ide/visualstudio/tasks/GenerateSolutionFileTask.html "class in org.gradle.ide.visualstudio.tasks"), [GenerateSwiftPackageManagerManifest](../../swiftpm/tasks/GenerateSwiftPackageManagerManifest.html "class in org.gradle.swiftpm.tasks"), [GenerateWorkspaceSettingsFileTask](../../ide/xcode/tasks/GenerateWorkspaceSettingsFileTask.html "class in org.gradle.ide.xcode.tasks"), [GenerateXcodeProjectFileTask](../../ide/xcode/tasks/GenerateXcodeProjectFileTask.html "class in org.gradle.ide.xcode.tasks"), [GenerateXcodeWorkspaceFileTask](../../ide/xcode/tasks/GenerateXcodeWorkspaceFileTask.html "class in org.gradle.ide.xcode.tasks"), [GeneratorTask](../../plugins/ide/api/GeneratorTask.html "class in org.gradle.plugins.ide.api"), [GradleBuild](../tasks/GradleBuild.html "class in org.gradle.api.tasks"), [GroovyCompile](../tasks/compile/GroovyCompile.html "class in org.gradle.api.tasks.compile"), [Groovydoc](../tasks/javadoc/Groovydoc.html "class in org.gradle.api.tasks.javadoc"), [HtmlDependencyReportTask](../reporting/dependencies/HtmlDependencyReportTask.html "class in org.gradle.api.reporting.dependencies"), [InitBuild](../../buildinit/tasks/InitBuild.html "class in org.gradle.buildinit.tasks"), [InstallExecutable](../../nativeplatform/tasks/InstallExecutable.html "class in org.gradle.nativeplatform.tasks"), [InstallXCTestBundle](../../nativeplatform/test/xctest/tasks/InstallXCTestBundle.html "class in org.gradle.nativeplatform.test.xctest.tasks"), [JacocoBase](../../testing/jacoco/tasks/JacocoBase.html "class in org.gradle.testing.jacoco.tasks"), [JacocoCoverageVerification](../../testing/jacoco/tasks/JacocoCoverageVerification.html "class in org.gradle.testing.jacoco.tasks"), [JacocoReport](../../testing/jacoco/tasks/JacocoReport.html "class in org.gradle.testing.jacoco.tasks"), [JacocoReportBase](../../testing/jacoco/tasks/JacocoReportBase.html "class in org.gradle.testing.jacoco.tasks"), [Jar](../tasks/bundling/Jar.html "class in org.gradle.api.tasks.bundling"), [Jar](../../jvm/tasks/Jar.html "class in org.gradle.jvm.tasks"), [JavaCompile](../tasks/compile/JavaCompile.html "class in org.gradle.api.tasks.compile"), [Javadoc](../tasks/javadoc/Javadoc.html "class in org.gradle.api.tasks.javadoc"), [JavaExec](../tasks/JavaExec.html "class in org.gradle.api.tasks"), [LinkExecutable](../../nativeplatform/tasks/LinkExecutable.html "class in org.gradle.nativeplatform.tasks"), [LinkMachOBundle](../../nativeplatform/tasks/LinkMachOBundle.html "class in org.gradle.nativeplatform.tasks"), [LinkSharedLibrary](../../nativeplatform/tasks/LinkSharedLibrary.html "class in org.gradle.nativeplatform.tasks"), [ModelReport](../reporting/model/ModelReport.html "class in org.gradle.api.reporting.model"), [ObjectiveCCompile](../../language/objectivec/tasks/ObjectiveCCompile.html "class in org.gradle.language.objectivec.tasks"), [ObjectiveCppCompile](../../language/objectivecpp/tasks/ObjectiveCppCompile.html "class in org.gradle.language.objectivecpp.tasks"), [ObjectiveCppPreCompiledHeaderCompile](../../language/objectivecpp/tasks/ObjectiveCppPreCompiledHeaderCompile.html "class in org.gradle.language.objectivecpp.tasks"), [ObjectiveCPreCompiledHeaderCompile](../../language/objectivec/tasks/ObjectiveCPreCompiledHeaderCompile.html "class in org.gradle.language.objectivec.tasks"), [OutgoingVariantsReportTask](../tasks/diagnostics/OutgoingVariantsReportTask.html "class in org.gradle.api.tasks.diagnostics"), [PluginUnderTestMetadata](../../plugin/devel/tasks/PluginUnderTestMetadata.html "class in org.gradle.plugin.devel.tasks"), [Pmd](quality/Pmd.html "class in org.gradle.api.plugins.quality"), [PrefixHeaderFileGenerateTask](../../nativeplatform/tasks/PrefixHeaderFileGenerateTask.html "class in org.gradle.nativeplatform.tasks"), [ProcessResources](../../language/jvm/tasks/ProcessResources.html "class in org.gradle.language.jvm.tasks"), [ProjectBasedReportTask](../tasks/diagnostics/ProjectBasedReportTask.html "class in org.gradle.api.tasks.diagnostics"), [ProjectReportTask](../tasks/diagnostics/ProjectReportTask.html "class in org.gradle.api.tasks.diagnostics"), [PropertiesGeneratorTask](../../plugins/ide/api/PropertiesGeneratorTask.html "class in org.gradle.plugins.ide.api"), [PropertyListGeneratorTask](../../plugins/ide/api/PropertyListGeneratorTask.html "class in org.gradle.plugins.ide.api"), [PropertyReportTask](../tasks/diagnostics/PropertyReportTask.html "class in org.gradle.api.tasks.diagnostics"), [PublishToIvyRepository](../publish/ivy/tasks/PublishToIvyRepository.html "class in org.gradle.api.publish.ivy.tasks"), [PublishToMavenLocal](../publish/maven/tasks/PublishToMavenLocal.html "class in org.gradle.api.publish.maven.tasks"), [PublishToMavenRepository](../publish/maven/tasks/PublishToMavenRepository.html "class in org.gradle.api.publish.maven.tasks"), [ResolvableConfigurationsReportTask](../tasks/diagnostics/ResolvableConfigurationsReportTask.html "class in org.gradle.api.tasks.diagnostics"), [RunTestExecutable](../../nativeplatform/test/tasks/RunTestExecutable.html "class in org.gradle.nativeplatform.test.tasks"), [ScalaCompile](../tasks/scala/ScalaCompile.html "class in org.gradle.api.tasks.scala"), [ScalaDoc](../tasks/scala/ScalaDoc.html "class in org.gradle.api.tasks.scala"), [Sign](../../plugins/signing/Sign.html "class in org.gradle.plugins.signing"), [SourceTask](../tasks/SourceTask.html "class in org.gradle.api.tasks"), [StripSymbols](../../nativeplatform/tasks/StripSymbols.html "class in org.gradle.nativeplatform.tasks"), [SwiftCompile](../../language/swift/tasks/SwiftCompile.html "class in org.gradle.language.swift.tasks"), [Sync](../tasks/Sync.html "class in org.gradle.api.tasks"), [Tar](../tasks/bundling/Tar.html "class in org.gradle.api.tasks.bundling"), [TaskReportTask](../tasks/diagnostics/TaskReportTask.html "class in org.gradle.api.tasks.diagnostics"), [Test](../tasks/testing/Test.html "class in org.gradle.api.tasks.testing"), [TestReport](../tasks/testing/TestReport.html "class in org.gradle.api.tasks.testing"), [UnexportMainSymbol](../../language/nativeplatform/tasks/UnexportMainSymbol.html "class in org.gradle.language.nativeplatform.tasks"), [UpdateDaemonJvm](../../buildconfiguration/tasks/UpdateDaemonJvm.html "class in org.gradle.buildconfiguration.tasks"), [Upload](../tasks/Upload.html "class in org.gradle.api.tasks"), [ValidatePlugins](../../plugin/devel/tasks/ValidatePlugins.html "class in org.gradle.plugin.devel.tasks"), [War](../tasks/bundling/War.html "class in org.gradle.api.tasks.bundling"), [WindowsResourceCompile](../../language/rc/tasks/WindowsResourceCompile.html "class in org.gradle.language.rc.tasks"), [Wrapper](../tasks/wrapper/Wrapper.html "class in org.gradle.api.tasks.wrapper"), [WriteProperties](../tasks/WriteProperties.html "class in org.gradle.api.tasks"), [XCTest](../../nativeplatform/test/xctest/tasks/XCTest.html "class in org.gradle.nativeplatform.test.xctest.tasks"), [XmlGeneratorTask](../../plugins/ide/api/XmlGeneratorTask.html "class in org.gradle.plugins.ide.api"), [Zip](../tasks/bundling/Zip.html "class in org.gradle.api.tasks.bundling")


public interface ExtensionAware

Objects that can be extended at runtime with other objects.

// Extensions are just plain objects, there is no interface/type class MyExtension { String foo

MyExtension(String foo) { this.foo = foo } }

// Add new extensions via the extension container project.extensions.create('custom', MyExtension, "bar") // («name», «type», «constructor args», …)

// extensions appear as properties on the target object by the given name assert project.custom instanceof MyExtension assert project.custom.foo == "bar"

// also via a namespace method project.custom { assert foo == "bar" foo = "other" } assert project.custom.foo == "other"

// Extensions added with the extension container's create method are themselves extensible assert project.custom instanceof ExtensionAware project.custom.extensions.create("nested", MyExtension, "baz") assert project.custom.nested.foo == "baz"

// All extension aware objects have a special "ext" extension of type ExtraPropertiesExtension assert project.hasProperty("myProperty") == false project.ext.myProperty = "myValue"

// Properties added to the "ext" extension are promoted to the owning object assert project.myProperty == "myValue"

Many Gradle objects are extension aware. This includes; projects, tasks, configurations, dependencies etc.

For more on adding & creating extensions, see ExtensionContainer.

For more on extra properties, see ExtraPropertiesExtension.

An ExtensionAware object has several 'scopes' that Gradle searches for properties. These scopes are:

The container of extensions.