From 2a027e5a1e2c3a7f2d828ff83fe17835d6547ad1 Mon Sep 17 00:00:00 2001 From: HypherionMC Date: Fri, 12 May 2023 19:20:02 +0200 Subject: [PATCH] Setup separate jar publishing for modules that can work without Minecraft --- build.gradle | 75 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index e366269..cdbec51 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ plugins { id 'java' id 'com.matyrobbrt.mc.registrationutils' version '1.19.3-2.0.1' + id 'maven-publish' } registrationUtils { @@ -12,12 +13,14 @@ registrationUtils { } } -subprojects { - ext { - isSnapshot = false - } +ext { + isSnapshot = false +} - def version_base = "${project.version_major}.${project.version_minor}" +def version_base = "${project.version_major}.${project.version_minor}" +version = "${version_base}.${project.version_patch}" + +subprojects { version = "${version_base}.${project.version_patch}" group = project.group @@ -88,3 +91,65 @@ subprojects { delete "$rootDir/artifacts" } } + +// Standalone or Module JARS +task rpcJar(type: Jar) { + dependsOn(compileJava) + includeEmptyDirs = false + archivesBaseName = "${mod_name}-common-${minecraft_version}" + version = project.version; + classifier = "rpc" + + from project(":Common").sourceSets.main.output + include("**\\rpcsdk\\**\\*", + "**\\**\\*.dylib", + "**\\**\\*.dll", + "**\\**\\*.so" + ) +} + +task configJar(type: Jar) { + dependsOn(compileJava) + includeEmptyDirs = false + archivesBaseName = "${mod_name}-common-${minecraft_version}" + version = project.version; + classifier = "config" + + from project(":Common").sourceSets.main.output + include("**\\core\\config\\**\\*", "**\\**\\CraterConstants.*") +} + +task eventsJar(type: Jar) { + dependsOn(compileJava) + includeEmptyDirs = false + archivesBaseName = "${mod_name}-common-${minecraft_version}" + version = project.version; + classifier = "events" + + from project(":Common").sourceSets.main.output + include("**\\core\\event\\**\\*", "**\\**\\CraterConstants.*") +} + +publishing { + publications { + mavenJava(MavenPublication) { + groupId project.group + artifactId "${mod_name}-common-${minecraft_version}" + version project.version + + artifact rpcJar + artifact eventsJar + artifact configJar + } + } + + repositories { + maven { + url "https://maven.firstdarkdev.xyz/" + (project.isSnapshot ? "snapshots" : "releases") + credentials { + username System.getenv("MAVEN_USER") + password System.getenv("MAVEN_PASS") + } + } + } +} \ No newline at end of file