Skip to content

Commit

Permalink
[1.20.6] Enable Gradle module metadata (#1781)
Browse files Browse the repository at this point in the history
Co-authored-by: shartte <[email protected]>
Co-authored-by: Technici4n <[email protected]>
  • Loading branch information
3 people authored Dec 15, 2024
1 parent c249610 commit f562d37
Show file tree
Hide file tree
Showing 5 changed files with 199 additions and 34 deletions.
5 changes: 0 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,6 @@ if (isPreReleaseVersion) {
}
}

changelog {
from '20.6'
disableAutomaticPublicationRegistration()
}

project.version = gradleutils.version.toString()
}

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ org.gradle.debug=false
java_version=21

minecraft_version=1.20.6
neoform_version=20240429.153634
neoform_version=20240627.102356
# on snapshot versions, used to prefix the version
neoforge_snapshot_next_stable=21.0

Expand Down
222 changes: 196 additions & 26 deletions projects/neoforge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,14 @@ plugins {
id 'net.neoforged.jarcompatibilitychecker' version '0.1.10'
}

rootProject.gradleutils.setupSigning(project: project, signAllPublications: true)
apply plugin: 'net.neoforged.gradleutils'

gradleutils.setupSigning(project: project, signAllPublications: true)

changelog {
from '20.6'
disableAutomaticPublicationRegistration()
}

dynamicProject {
runtime("${project.minecraft_version}-${project.neoform_version}",
Expand Down Expand Up @@ -231,8 +238,6 @@ tasks.withType(Javadoc.class).configureEach {
options.addStringOption('Xdoclint:all,-missing', '-public')
}

tasks.withType(GenerateModuleMetadata).configureEach { enabled = false }

configurations {
forValidation {
canBeConsumed = true
Expand All @@ -254,6 +259,193 @@ artifacts {
}
}

AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants) project.components.findByName("java")
// Ensure the two default variants are not published, since they
// contain Minecraft classes
javaComponent.withVariantsFromConfiguration(configurations.apiElements) {
it.skip()
}
javaComponent.withVariantsFromConfiguration(configurations.runtimeElements) {
it.skip()
}

configurations {
modDevBundle {
canBeResolved = false
canBeConsumed = true
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, "data"))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
}
outgoing {
capability("net.neoforged:neoforge-moddev-bundle:${project.version}")
}
javaComponent.addVariantsFromConfiguration(it) {} // Publish it
}
modDevConfig {
canBeResolved = false
canBeConsumed = true
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, "data"))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
}
outgoing {
capability("net.neoforged:neoforge-moddev-config:${project.version}")
}
javaComponent.addVariantsFromConfiguration(it) {} // Publish it
}
installerJar {
canBeResolved = false
canBeConsumed = true
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EMBEDDED))
// The installer targets JDK 8
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8)
}
outgoing {
capability("net.neoforged:neoforge-installer:${project.version}")
}
// Publish it
javaComponent.addVariantsFromConfiguration(it) {}
}
universalJar {
canBeResolved = false
canBeConsumed = true
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, JavaVersion.current().majorVersion.toInteger())
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements, LibraryElements.JAR))
}
// Publish it
javaComponent.addVariantsFromConfiguration(it) {}
}
changelog {
canBeResolved = false
canBeConsumed = true
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.DOCUMENTATION))
attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType, "changelog"))
}
// Publish it, but only for release versions
if (!rootProject.isPreReleaseVersion) {
javaComponent.addVariantsFromConfiguration(it) {}
}
}
modDevApiElements {
canBeResolved = false
canBeConsumed = true
afterEvaluate {
extendsFrom userdevCompileOnly, installerLibraries, moduleOnly
}
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_API))
}
outgoing {
capability("net.neoforged:neoforge-dependencies:${project.version}")
}
javaComponent.addVariantsFromConfiguration(it) {}
}
modDevRuntimeElements {
canBeResolved = false
canBeConsumed = true
afterEvaluate {
extendsFrom installerLibraries, moduleOnly
}
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
}
outgoing {
capability("net.neoforged:neoforge-dependencies:${project.version}")
}
javaComponent.addVariantsFromConfiguration(it) {}
}
modDevModulePath {
canBeResolved = false
canBeConsumed = true
afterEvaluate {
extendsFrom moduleOnly
}
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
}
outgoing {
capability("net.neoforged:neoforge-moddev-module-path:${project.version}")
}
javaComponent.addVariantsFromConfiguration(it) {}
}
modDevTestFixtures {
canBeResolved = false
canBeConsumed = true
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
}
outgoing {
capability("net.neoforged:neoforge-moddev-test-fixtures:${project.version}")
}
javaComponent.addVariantsFromConfiguration(it) {}
}
}

dependencies {
modDevBundle("net.neoforged:neoform:${project.minecraft_version}-${project.neoform_version}") {
capabilities {
requireCapability 'net.neoforged:neoform'
}
endorseStrictVersions()
}
modDevApiElements("net.neoforged:neoform:${project.minecraft_version}-${project.neoform_version}") {
capabilities {
requireCapability 'net.neoforged:neoform-dependencies'
}
endorseStrictVersions()
}
modDevRuntimeElements("net.neoforged:neoform:${project.minecraft_version}-${project.neoform_version}") {
capabilities {
requireCapability 'net.neoforged:neoform-dependencies'
}
endorseStrictVersions()
}
modDevTestFixtures("net.neoforged.fancymodloader:junit-fml:${project.fancy_mod_loader_version}") {
endorseStrictVersions()
}
}

afterEvaluate {
artifacts {
modDevBundle(userdevJar) {
setClassifier("userdev") // Legacy
}
modDevConfig(createUserdevJson.output) {
builtBy(createUserdevJson)
setClassifier("moddev-config")
}
universalJar(signUniversalJar.output) {
builtBy(signUniversalJar)
setClassifier("universal")
}
installerJar(signInstallerJar.output) {
builtBy(signInstallerJar)
setClassifier("installer")
}
changelog(createChangelog.outputFile) {
builtBy(createChangelog)
setClassifier("changelog")
setExtension("txt")
}
}
}

publishing {
publications.create('NeoForge', MavenPublication) {
groupId = project.group
Expand All @@ -262,28 +454,6 @@ publishing {

from components.java

artifacts = []

afterEvaluate {
artifact (signUniversalJar.output) {
classifier 'universal'
}
artifact (signInstallerJar.output) {
classifier 'installer'
}
artifact (userdevJar) {
classifier 'userdev'
}
artifact (sourcesJar) {
classifier 'sources'
}
}

if (!rootProject.isPreReleaseVersion) {
// Only publish a changelog for releases
changelog.publish(it)
}

versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
Expand Down Expand Up @@ -319,6 +489,6 @@ publishing {
}
}
repositories {
maven rootProject.gradleutils.getPublishingMaven()
maven gradleutils.getPublishingMaven()
}
}
2 changes: 1 addition & 1 deletion testframework/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ repositories {
}

dependencies {
implementation project(':neoforge')
implementation project(path: ':neoforge', configuration: 'runtimeElements')

compileOnly(platform("org.junit:junit-bom:${project.jupiter_api_version}"))
compileOnly "org.junit.jupiter:junit-jupiter-params"
Expand Down
2 changes: 1 addition & 1 deletion tests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ configurations {
}

dependencies {
implementation(neoforgeProject)
implementation project(path: ':neoforge', configuration: 'runtimeElements')
implementation(testframeworkProject)

junitImplementation(platform("org.junit:junit-bom:${project.jupiter_api_version}"))
Expand Down

0 comments on commit f562d37

Please sign in to comment.