From e1df9d3d9d2ee0e1e7b9e2c62079029b32c1ce1e Mon Sep 17 00:00:00 2001 From: Bram Date: Mon, 8 Jul 2024 19:08:33 +0200 Subject: [PATCH] Fix: Publishing (hopefully) --- .../entitylib.library-conventions.gradle.kts | 85 ++++++++++++++++--- jitpack.yml | 15 +++- 2 files changed, 85 insertions(+), 15 deletions(-) diff --git a/buildSrc/src/main/kotlin/entitylib.library-conventions.gradle.kts b/buildSrc/src/main/kotlin/entitylib.library-conventions.gradle.kts index a030ed9..02b7fe5 100644 --- a/buildSrc/src/main/kotlin/entitylib.library-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/entitylib.library-conventions.gradle.kts @@ -1,3 +1,6 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import groovy.util.Node + plugins { `java-library` `maven-publish` @@ -14,6 +17,8 @@ repositories { maven("https://repo.codemc.io/repository/maven-snapshots/") } +val isShadow = project.pluginManager.hasPlugin("io.github.goooler.shadow") + java { withSourcesJar() withJavadocJar() @@ -23,6 +28,11 @@ java { } tasks { + withType { + options.encoding = Charsets.UTF_8.name() + options.release = 8 + } + processResources { inputs.property("version", project.version) filesMatching(listOf("plugin.yml", "velocity-plugin.json")) { @@ -30,25 +40,72 @@ tasks { } } - withType { - options.encoding = Charsets.UTF_8.name() - options.release = 8 - } - - publishing { - publications { - create("maven") { - groupId = project.group.toString() - artifactId = project.name - version = project.version.toString() - from(components["java"]) - } - } + jar { + archiveClassifier = "default" } defaultTasks("build") } +publishing { + publications { + create("shadow") { + groupId = project.group as String + artifactId = "EntityLib-" + project.name + version = project.version as String + + if (isShadow) { + artifact(project.tasks.withType().getByName("shadowJar").archiveFile) + + val allDependencies = project.provider { + project.configurations.getByName("shadow").allDependencies + .filter { it is ProjectDependency || it !is SelfResolvingDependency } + } + + pom { + withXml { + val (libraryDeps, projectDeps) = allDependencies.get().partition { it !is ProjectDependency } + val dependenciesNode = asNode().get("dependencies") as? Node ?: asNode().appendNode("dependencies") + + libraryDeps.forEach { + val dependencyNode = dependenciesNode.appendNode("dependency") + dependencyNode.appendNode("groupId", it.group) + dependencyNode.appendNode("artifactId", it.name) + dependencyNode.appendNode("version", it.version) + dependencyNode.appendNode("scope", "compile") + } + + projectDeps.forEach { + val dependencyNode = dependenciesNode.appendNode("dependency") + dependencyNode.appendNode("groupId", it.group) + dependencyNode.appendNode("artifactId", "packetevents-" + it.name) + dependencyNode.appendNode("version", it.version) + dependencyNode.appendNode("scope", "compile") + } + } + } + + artifact(tasks["sourcesJar"]) + } else { + from(components["java"]) + } + + pom { + name = "${rootProject.name}-${project.name}" + description = rootProject.description + url = "https://github.com/Tofaa2/EntityLib" + + licenses { + license { + name = "GPL-3.0" + url = "https://www.gnu.org/licenses/gpl-3.0.html" + } + } + } + } + } +} + // So that SNAPSHOT is always the latest SNAPSHOT configurations.all { resolutionStrategy.cacheDynamicVersionsFor(0, TimeUnit.SECONDS) diff --git a/jitpack.yml b/jitpack.yml index eea24d2..314c598 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,2 +1,15 @@ jdk: - - temurin-21 \ No newline at end of file + - temurin-21 + +stages: + - name: build + - name: publish + depends_on: build + +build: + script: + - ./gradlew build + +publish: + script: + - ./gradlew publishToMavenLocal \ No newline at end of file