GradleUtils is a support plugin for NeoForged projects, which provides Git-based versioning and changelog generation.
Apply the plugin to the buildscript as normal (substitute the version with the latest version):
plugins {
id 'net.neoforged.gradleutils' version '3.0.0'
}
The gradleutils
project extension provides access to versioning. To apply the versioning configured in GradleUtils,
use the version
property on the extension. The returned object will calculate the version when toString()
ed.
Configuring the versioning is done through the related version
spec on the extension. (The difference is that
the property to access the calculated version does not accept a closure.) Configuration should be done before the
first time the version is calculated.
gradleutils.version {
// ... configure the version here ...
}
project.version = gradleutils.version
The changelog
project extension provides access to changelog generation. The changelog generation will use the same
versioning configuration, as configured in the gradleutils
project extension.
To generate a changelog, simply call the from
method on the extension with the earliest revision (tag or commit ID) to
be included. The changelog is generated by the createChangelog
task, which is linked to the assemble
task.
By default, the changelog is included in all MavenPublication
on the project as an artifact with the -changelog
classifier, if the maven-publish
plugin is applied. To manually control the changelog's publishing, call
disableAutomaticPublicationRegistration()
on the extension, and use the publish(MavenPublication)
method to attach
the changelog to publications as desired.
changelog {
from '2.0'
// For fine-grained changelog publication control
disableAutomaticPublicationRegistration()
}
publishing {
publications {
mavenJava(MavenPublication) {
// ...
changelog.publish(it) // 'it' refers to the 'mavenJava' publication
}
}
}
The net.neoforged.gradleutils.spotless
plugin provides integration (a formatter configuration) with Spotless.
The Spotless plugin must be manually applied to the buildscript, as GradleUtils does not apply it automatically.
This plugin also requires Gradle to run with at least Java 11, much like Spotless does.
This plugin provides a spotlessUtils
extension which has a configure
method that can be called with the spotless
extension to configure Spotless and use the formatter configuration provided by GradleUtils:
spotlessUtils {
configure(spotless)
}
This project is licensed under the GNU Lesser General Public License, or LGPL, version 2.1 only. See the LICENSE
file
for the full license text.