# ToolchainManagement

@Incubating
interface ToolchainManagement : ExtensionAware

Configures how toolchains are resolved.

`ToolchainManagement` is extended by plugins to support different ecosystems.

One option available at present is using the `jvm-toolchain-management` plugin, which adds a `jvm` block to it, allowing for the configuration of toolchains used in the JVM ecosystem.

#### Since

7.6

## Properties

extra
Link copied to clipboard
val ExtensionAware.extra: ExtraPropertiesExtension

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

jvm
Link copied to clipboard
@get:Incubating
val ToolchainManagement.jvm: JvmToolchainManagement

Provides statically defined accessors for getting the "jvm" block of "toolchainManagement". The "jvm-toolchain-management" plugin needs to be applied in order for these extensions to work.

## Functions

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.

getExtensions
Link copied to clipboard
abstract fun getExtensions(): ExtensionContainer
jvm
Link copied to clipboard
@Incubating
fun ToolchainManagement.jvm(block: JvmToolchainManagement.() -> Unit)

Provides statically defined accessors for configuring the "jvm" block in "toolchainManagement". The "jvm-toolchain-management" plugin needs to be applied in order for these extensions to work.

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.