Version Stategies
The VersionStrategy that is used defined how the various versions & artifact names are generated from the mod metadata.
It can be customized by setting the version_strategy gradle property to a value defined below, or by setting it directly on the mod extension.
mod {
versionStrategy = MyVersionStrategy()
}
Generated Fields
| Field | Description |
|---|---|
| modVersion | replaces mod_version in templates such as neoforge.mods.toml |
| metadataTag | tag property written to build/release.json |
| uploadVersion | version published to curseforge/modrinth |
| artifactVersion | version of the maven artifact being published |
| artifactName | name of the maven artifact being published |
| baseName | base name of the JAR file being created |
Default Strategy
version_strategy = simple
The SimpleStrategy will strip the version metadata (everything after the plus sign) from everything except the metadataVersion.
Examples
Field Outputs
| Field | Value | Subproject named module |
|---|---|---|
| modVersion | 1.0.0 |
same |
| metadataTag | 1.0.0 |
same |
| uploadVersion | 1.0.0 |
same |
| artifactVersion | 1.0.0 |
same |
| artifactName | mod_id |
mod_id-module |
| baseName | mod_id-1.0.0 |
mod_id-module-1.0.0 |
| Field | Value |
|---|---|
| modVersion | 1.0.0 |
| metadataTag | 1.0.0+some.metadata |
| uploadVersion | 1.0.0 |
| artifactVersion | 1.0.0 |
| artifactName | mod_id |
| baseName | mod_id-1.0.0 |
| Field | Value |
|---|---|
| modVersion | 1.0.0-prerelease |
| metadataTag | 1.0.0-prerelease |
| uploadVersion | 1.0.0-prerelease |
| artifactVersion | 1.0.0-prerelease |
| artifactName | mod_id |
| baseName | mod_id-1.0.0-prerelease |
With-Minecraft-Version Strategy
version_strategy = with_minecraft_version
Wraps around the default version strategy and adds the minecraft version to the artifact name & some of the versions metadata.
This strategy makes sense for projects that share the same versions between different minecraft version (without for example incrementing the major version).
Examples
Field Outputs
| Field | Value |
|---|---|
| modVersion | 1.0.0 |
| metadataTag | 1.0.0+mc1.21.1 |
| uploadVersion | 1.0.0 |
| artifactVersion | 1.0.0 |
| artifactName | mod_id-1.21.1 |
| baseName | mod_id-1.0.0 |
| Field | Value |
|---|---|
| modVersion | 1.0.0 |
| metadataTag | 1.0.0+mc1.21.1 |
| uploadVersion | 1.0.0 |
| artifactVersion | 1.0.0 |
| artifactName | mod_id-1.21.1 |
| baseName | mod_id-1.0.0 |
| Field | Value |
|---|---|
| modVersion | 1.0.0 |
| metadataTag | 1.0.0+some.metadata.mc1.21.1 |
| uploadVersion | 1.0.0 |
| artifactVersion | 1.0.0 |
| artifactName | mod_id-1.21.1 |
| baseName | mod_id-1.0.0 |
| Field | Value |
|---|---|
| modVersion | 1.0.0-prerelease |
| metadataTag | 1.0.0-prerelease+mc1.21.1 |
| uploadVersion | 1.0.0-prerelease |
| artifactVersion | 1.0.0-prerelease |
| artifactName | mod_id-1.21.1 |
| baseName | mod_id-1.0.0-prerelease |
With-Loader Strategy
version_strategy = with_loader
Adds the loader to the artifact name & the version metadata of the generated build/release.json tag property.
This strategy makes sense for projects that share the same versions between different loaders, but share the same mod id.
Examples
Field Outputs
| Field | Value |
|---|---|
| modVersion | 1.0.0 |
| metadataTag | 1.0.0+neoforge |
| uploadVersion | 1.0.0 |
| artifactVersion | 1.0.0 |
| artifactName | mod_id-neoforge |
| baseName | mod_id-neoforge-1.0.0 |
| Field | Value |
|---|---|
| modVersion | 1.0.0 |
| metadataTag | 1.0.0+neoforge |
| uploadVersion | 1.0.0 |
| artifactVersion | 1.0.0 |
| artifactName | mod_id-neoforge |
| baseName | mod_id-neoforge-1.0.0 |
| Field | Value |
|---|---|
| modVersion | 1.0.0 |
| metadataTag | 1.0.0+some.metadata.neoforge |
| uploadVersion | 1.0.0 |
| artifactVersion | 1.0.0 |
| artifactName | mod_id-neoforge |
| baseName | mod_id-neoforge-1.0.0 |
| Field | Value |
|---|---|
| modVersion | 1.0.0-prerelease |
| metadataTag | 1.0.0-prerelease+neoforge |
| uploadVersion | 1.0.0-prerelease |
| artifactVersion | 1.0.0-prerelease |
| artifactName | mod_id-neoforge |
| baseName | mod_id-neoforge-1.0.0-prerelease |