[ci-skip] Publish shadowJar as server artifact

This commit is contained in:
jmp
2020-12-25 12:03:09 -08:00
parent f142481e2b
commit 822a35a0ba
3 changed files with 26 additions and 10 deletions

View File

@@ -16,10 +16,13 @@ import org.gradle.api.tasks.javadoc.Javadoc
import org.gradle.api.tasks.testing.Test import org.gradle.api.tasks.testing.Test
import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.attributes import org.gradle.kotlin.dsl.attributes
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.create
import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.get
import org.gradle.kotlin.dsl.getByName
import org.gradle.kotlin.dsl.getValue import org.gradle.kotlin.dsl.getValue
import org.gradle.kotlin.dsl.getting import org.gradle.kotlin.dsl.getting
import org.gradle.kotlin.dsl.withType
import java.nio.charset.StandardCharsets.UTF_8 import java.nio.charset.StandardCharsets.UTF_8
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Date import java.util.Date
@@ -29,20 +32,18 @@ internal fun Project.configureSubprojects() {
apply<JavaLibraryPlugin>() apply<JavaLibraryPlugin>()
apply<MavenPublishPlugin>() apply<MavenPublishPlugin>()
tasks.getting(JavaCompile::class) { tasks.withType<JavaCompile> {
options.encoding = UTF_8.name() options.encoding = UTF_8.name()
} }
tasks.getting(Javadoc::class) { tasks.withType<Javadoc> {
options.encoding = UTF_8.name() options.encoding = UTF_8.name()
} }
extensions.configure(PublishingExtension::class.java) { extensions.configure<PublishingExtension> {
publications { publications {
create<MavenPublication>("mavenJava") { create<MavenPublication>("mavenJava") {
artifactId = if (project.name.endsWith("server")) rootProject.name else project.name
groupId = rootProject.group as String groupId = rootProject.group as String
version = rootProject.version as String version = rootProject.version as String
from(components["java"])
pom { pom {
name.set(project.name) name.set(project.name)
url.set(toothpick.forkUrl) url.set(toothpick.forkUrl)
@@ -72,6 +73,7 @@ private fun Project.configureServerProject() {
} }
val shadowJar by tasks.getting(ShadowJar::class) { val shadowJar by tasks.getting(ShadowJar::class) {
archiveClassifier.set("") // ShadowJar is the main server artifact
dependsOn(generatePomFileForMavenJavaPublication) dependsOn(generatePomFileForMavenJavaPublication)
transform(Log4j2PluginsCacheFileTransformer::class.java) transform(Log4j2PluginsCacheFileTransformer::class.java)
mergeServiceFiles() mergeServiceFiles()
@@ -125,6 +127,15 @@ private fun Project.configureServerProject() {
tasks.getByName("build") { tasks.getByName("build") {
dependsOn(shadowJar) dependsOn(shadowJar)
} }
extensions.configure<PublishingExtension> {
publications {
getByName<MavenPublication>("mavenJava") {
artifactId = rootProject.name
artifact(tasks["shadowJar"])
}
}
}
} }
@Suppress("UNUSED_VARIABLE") @Suppress("UNUSED_VARIABLE")
@@ -141,4 +152,13 @@ private fun Project.configureApiProject() {
attributes("Automatic-Module-Name" to "org.bukkit") attributes("Automatic-Module-Name" to "org.bukkit")
} }
} }
extensions.configure<PublishingExtension> {
publications {
getByName<MavenPublication>("mavenJava") {
artifactId = project.name
from(components["java"])
}
}
}
} }

View File

@@ -1,7 +1,6 @@
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.findByType import org.gradle.kotlin.dsl.findByType
import java.io.File import java.io.File
import java.nio.file.Path
val Project.toothpick: ToothpickExtension val Project.toothpick: ToothpickExtension
get() = rootProject.extensions.findByType(ToothpickExtension::class)!! get() = rootProject.extensions.findByType(ToothpickExtension::class)!!
@@ -25,6 +24,3 @@ val Project.rootProjectDir: File
val Project.upstreamDir: File val Project.upstreamDir: File
get() = rootProject.projectDir.resolve(toothpick.upstream) get() = rootProject.projectDir.resolve(toothpick.upstream)
val Project.projectPath: Path
get() = projectDir.toPath()

View File

@@ -20,7 +20,7 @@ internal fun Project.createPaperclipTask(
val vanillaJarPath = val vanillaJarPath =
workDir.resolve("Minecraft/${toothpick.minecraftVersion}/${toothpick.minecraftVersion}.jar").absolutePath workDir.resolve("Minecraft/${toothpick.minecraftVersion}/${toothpick.minecraftVersion}.jar").absolutePath
val patchedJarPath = toothpick.serverProject.projectDir.resolve( val patchedJarPath = toothpick.serverProject.projectDir.resolve(
"build/libs/${toothpick.forkNameLowercase}-server-$version-all.jar" "build/libs/${toothpick.forkNameLowercase}-server-$version.jar"
).absolutePath ).absolutePath
logger.lifecycle(">>> Building paperclip") logger.lifecycle(">>> Building paperclip")
val paperclipCmd = arrayListOf( val paperclipCmd = arrayListOf(