From 2ecb5556192e4b2cf116a4632cd9de329535d2ec Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Mon, 7 Jul 2025 23:37:37 +0200 Subject: [PATCH] add publishing for the api artifact --- build.gradle.kts | 4 ++- buildSrc/src/main/kotlin/ApiGenerator.kt | 35 ++++++++++++++++++------ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 733f6134e..d3cfd5fee 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -35,10 +35,12 @@ plugins { id("xyz.jpenilla.run-paper") version "2.3.1" id("io.sentry.jvm.gradle") version "5.7.0" } -apply() +group = "com.volmit" version = "3.6.11-1.20.1-1.21.5" +apply() + // ADD YOURSELF AS A NEW LINE IF YOU WANT YOUR OWN BUILD TASK GENERATED // ======================== WINDOWS ============================= registerCustomOutputTask("Cyberpwn", "C://Users/cyberpwn/Documents/development/server/plugins") diff --git a/buildSrc/src/main/kotlin/ApiGenerator.kt b/buildSrc/src/main/kotlin/ApiGenerator.kt index f1bd334d5..3c3a3ba3e 100644 --- a/buildSrc/src/main/kotlin/ApiGenerator.kt +++ b/buildSrc/src/main/kotlin/ApiGenerator.kt @@ -1,7 +1,9 @@ import org.gradle.api.DefaultTask import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.api.provider.Provider +import org.gradle.api.publish.PublishingExtension +import org.gradle.api.publish.maven.MavenPublication +import org.gradle.api.publish.maven.plugins.MavenPublishPlugin import org.gradle.api.tasks.InputFile import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction @@ -12,8 +14,17 @@ import java.util.jar.JarFile import java.util.jar.JarOutputStream class ApiGenerator : Plugin { - override fun apply(target: Project) { - target.tasks.register("generateApi", GenerateApiTask::class.java) + override fun apply(target: Project): Unit = with(target) { + plugins.apply(MavenPublishPlugin::class.java) + val task = tasks.register("irisApi", GenerateApiTask::class.java) + extensions.findByType(PublishingExtension::class.java)!! + .publications + .create("maven", MavenPublication::class.java) { + it.groupId = group.toString() + it.artifactId = name + it.version = version.toString() + it.artifact(task) + } } } @@ -21,21 +32,27 @@ abstract class GenerateApiTask : DefaultTask() { init { group = "iris" dependsOn("jar") + finalizedBy("publishToMavenLocal") + doLast { + logger.lifecycle("The API is located at ${outputFile.absolutePath}") + } } @InputFile - val inputFile: Provider = project.tasks + val inputFile: File = project.tasks .named("jar", Jar::class.java) - .flatMap { it.archiveFile } - .map { it.asFile } + .get() + .archiveFile + .get() + .asFile @OutputFile - val outputFile: Provider = inputFile.map { targetDirectory().resolve(it.name) } + val outputFile: File = targetDirectory().resolve(inputFile.name) @TaskAction fun generate() { - JarFile(inputFile.get()).use { jar -> - JarOutputStream(outputFile.get().outputStream()).use { out -> + JarFile(inputFile.apply { mkdirs() }).use { jar -> + JarOutputStream(outputFile.apply { mkdirs() }.outputStream()).use { out -> jar.stream() .parallel() .filter { !it.isDirectory }