Releases: gradle-plugins/toolbox
v1.9.0
This release improves the gradlePlugin
extension by introducing a new dependencies
feature. This simplifies the declaration of dependencies by organizing them into declarable buckets, enhancing support for version catalogues and improving code completion. Additionally, test suites received significant improvements.
The gradlePlugin.dependencies
extension is designed to clarify intent compared to using project.dependencies
. Configuring implementation
dependencies with the project DependencyHandler
targets the main
source set, which may be misleading if developers configure the gradlePlugin.pluginSourceSet
. We maintain clear intentions by deferring dependencies configuration until pluginSourceSet
is finalized thanks to the dependencies
extension. Future versions will assert consistency if pluginSourceSet
changes unexpectedly.
Additionally, new dependency types for plugin authors allow easier and more stable dependencies on other plugins. Instead of knowing a plugin's Maven coordinates, you can now use gradlePlugin('<plugin-id>:<version>')
, which returns an ExternalModuleDependency
to the plugin JAR:
gradlePlugin {
dependencies {
implementation(gradlePlugin("com.example.my-plugin:4.2"))
}
}
dependencies {
compileOnly(gradlePlugin("com.example.my-plugin:4.2"))
}
v1.8.0
This release introduces the capability to distinguish the plugin API and implementation. The distinction can be made using two jar tasks or source sets. The following example shows a glance of what this new capability is about:
// Remove `api` packages from implementation JAR
tasks.named('jar', Jar) {
exclude('**\/api\/**')
}
// Configure Gradle plugin API as a custom JAR that only include `api` packages
gradlePlugin {
api {
jarTask = tasks.register('apiJar', Jar) {
from(sourceSet.flatMap { it.output.elements })
include('**\/api\/**')
archiveClassifier = 'api'
}
}
}
Note this feature may receive breaking changes over the next few releases. Feel free to give it a try and report any issue you encounter.
v1.7.2
v1.7.1
v1.7.0
v1.6.13
v1.6.12
This release includes Gradle runtime information in GradleRuntimeCompatibility up to Gradle 8.8.
v1.6.11
This release includes Gradle runtime information in GradleRuntimeCompatibility up to Gradle 8.6. We also introduced lastPatchedVersionOf
and lastMinorReleaseOf
to help deal with Gradle minor and patch versions.
As part of this release, we no longer publish gradle-fixtures-source-elements
. Instead, the project was extracted into gradle-plugins/source-elements
. This work will evolve organically as required.
v1.6.10
This release includes Gradle runtime information in GradleRuntimeCompatibility up to Gradle 8.4.
The release also contains fixes to deprecation warnings introduced in Gradle 8+ and removes reliance on some internal Gradle types.
v1.6.9
This release includes Gradle 7.6 runtime information in GradleRuntimeCompatibility
.