plugins { id 'java-library' id 'maven-publish' } base { archivesName = "${mod_id}-${project.name}-${minecraft_version}" } java { toolchain.languageVersion = JavaLanguageVersion.of(java_version) withSourcesJar() withJavadocJar() } repositories { mavenCentral() // https://docs.gradle.org/current/userguide/declaring_repositories.html#declaring_content_exclusively_found_in_one_repository exclusiveContent { forRepository { maven { name = 'Sponge' url = 'https://repo.spongepowered.org/repository/maven-public' } } filter { includeGroupAndSubgroups("org.spongepowered") } } maven { name = 'BlameJared' url = 'https://maven.blamejared.com' } } dependencies { implementation 'org.jetbrains:annotations:24.1.0' } // Declare capabilities on the outgoing configurations. // Read more about capabilities here: https://docs.gradle.org/current/userguide/component_capabilities.html#sec:declaring-additional-capabilities-for-a-local-component ['apiElements', 'runtimeElements', 'sourcesElements', 'javadocElements'].each { variant -> configurations."$variant".outgoing { capability("$group:$mod_id-${project.name}-${minecraft_version}:$version") capability("$group:$mod_id:$version") } publishing.publications.configureEach { suppressPomMetadataWarningsFor(variant) } } sourcesJar { from(rootProject.file("LICENSE")) { rename { "${it}_${mod_name}" } } } jar { from(rootProject.file("LICENSE")) { rename { "${it}_${mod_name}" } } manifest { attributes([ 'Specification-Title' : mod_name, 'Specification-Vendor' : mod_author, 'Specification-Version' : project.jar.archiveVersion, 'Implementation-Title' : project.name, 'Implementation-Version': project.jar.archiveVersion, 'Implementation-Vendor' : mod_author, 'Built-On-Minecraft' : minecraft_version ]) } } processResources { def expandProps = [ "version": version, "group": project.group, //Else we target the task's group. "minecraft_version": minecraft_version, "forge_version": forge_version, "forge_loader_version_range": forge_loader_version_range, "forge_version_range": forge_version_range, "minecraft_version_range": minecraft_version_range, "fabric_version": fabric_version, "fabric_loader_version": fabric_loader_version, "mod_name": mod_name, "mod_author": mod_author, "mod_id": mod_id, "license": license, "description": project.description, "neoforge_version": neoforge_version, "neoforge_loader_version_range": neoforge_loader_version_range, "credits": credits, "java_version": java_version ] filesMatching(['pack.mcmeta', 'fabric.mod.json', 'META-INF/mods.toml', 'META-INF/neoforge.mods.toml', '*.mixins.json']) { expand expandProps } inputs.properties(expandProps) } publishing { publications { register('mavenJava', MavenPublication) { artifactId base.archivesName.get() from components.java } } repositories { maven { url System.getenv("local_maven_url") } } }