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.