Skip to content

Commit eda6f47

Browse files
committed
re-added mod resources publishing
1 parent f28d5d9 commit eda6f47

5 files changed

Lines changed: 60 additions & 15 deletions

File tree

.github/workflows/beta.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
matrix:
1313
# Use these Java versions
1414
java: [
15-
21, # Current Java LTS
15+
25, # Current Java LTS
1616
]
1717
runs-on: ubuntu-22.04
1818
steps:
@@ -28,9 +28,8 @@ jobs:
2828
- name: make gradle wrapper executable
2929
run: chmod +x ./gradlew
3030
- name: build
31-
run: ./gradlew build
31+
run: ./gradlew buildAndCollect
3232
- name: capture build artifacts
33-
if: ${{ matrix.java == '21' }} # Only upload artifacts built from latest java
3433
uses: actions/upload-artifact@v4
3534
with:
3635
name: Artifacts

build-logic/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,5 @@ dependencies {
2828
implementation(libs.mod.publish.plugin)
2929
implementation(libs.foojay.resolver)
3030
implementation(libs.fletching.table)
31+
implementation(libs.vanniktech.maven.publish)
3132
}

build-logic/src/main/kotlin/ModPlatformPlugin.kt

Lines changed: 53 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@file:Suppress("unused", "DuplicatedCode")
22

3+
import com.vanniktech.maven.publish.MavenPublishBaseExtension
34
import dev.kikugie.fletching_table.extension.FletchingTableExtension
45
import dev.kikugie.stonecutter.build.StonecutterBuildExtension
56
import me.modmuss50.mpp.ModPublishExtension
@@ -12,6 +13,7 @@ import org.gradle.api.artifacts.dsl.RepositoryHandler
1213
import org.gradle.api.artifacts.repositories.MavenArtifactRepository
1314
import org.gradle.api.plugins.JavaPluginExtension
1415
import org.gradle.api.provider.Property
16+
import org.gradle.api.publish.PublishingExtension
1517
import org.gradle.api.tasks.Copy
1618
import org.gradle.internal.extensions.stdlib.toDefaultLowerCase
1719
import org.gradle.jvm.tasks.Jar
@@ -22,7 +24,6 @@ import org.gradle.plugins.ide.idea.model.IdeaModel
2224
import java.io.File
2325
import java.util.*
2426
import javax.inject.Inject
25-
import kotlin.text.substringAfterLast
2627

2728
fun Project.prop(name: String): String = (findProperty(name) ?: "") as String
2829

@@ -92,7 +93,8 @@ abstract class ModPlatformPlugin @Inject constructor() : Plugin<Project> {
9293
listOf(
9394
"org.jetbrains.kotlin.jvm",
9495
"com.google.devtools.ksp",
95-
"dev.kikugie.fletching-table"
96+
"dev.kikugie.fletching-table",
97+
"com.vanniktech.maven.publish",
9698
).forEach { apply(plugin = it) }
9799

98100
afterEvaluate {
@@ -131,8 +133,8 @@ abstract class ModPlatformPlugin @Inject constructor() : Plugin<Project> {
131133
configureJarTask(modId, prop("archives_base_name"), loader)
132134
configureIdea()
133135
configureProcessResources(stonecutter, isFabric, isNeoForge, isForge, modId, modVersion, mcVersion, extension, extension.requiredJava.get())
134-
registerBuildAndCollectTask(extension, "$modVersion$channelTag")
135-
configurePublishing(extension, loader, stonecutter, "$modVersion$channelTag", channelTag, version.toString())
136+
registerBuildAndCollectTask(extension, modVersion)
137+
configurePublishing(extension, loader, stonecutter, modVersion, channelTag, version.toString())
136138
}
137139

138140
private fun Project.configureJarTask(modId: String, archivesBaseName: String, loader: String) {
@@ -279,7 +281,7 @@ abstract class ModPlatformPlugin @Inject constructor() : Plugin<Project> {
279281
private fun Project.configureJava(stonecutter: StonecutterBuildExtension, requiredJava: JavaVersion) {
280282
extensions.configure<JavaPluginExtension>("java") {
281283
withSourcesJar()
282-
withJavadocJar()
284+
//withJavadocJar()
283285
toolchain.languageVersion = JavaLanguageVersion.of(requiredJava.majorVersion)
284286
sourceCompatibility = requiredJava
285287
targetCompatibility = requiredJava
@@ -388,12 +390,7 @@ abstract class ModPlatformPlugin @Inject constructor() : Plugin<Project> {
388390
dryRun = true
389391
}
390392

391-
val isForge = false
392-
val targetName = if(isForge) {
393-
"reobfJar"
394-
} else {
395-
ext.jarTask.get()
396-
}
393+
val targetName = ext.jarTask.get()
397394

398395
val jarTask = tasks.named(targetName).map { it as Jar }
399396
val srcJarTask = tasks.named(ext.sourcesJarTask.get()).map { it as Jar }
@@ -412,6 +409,51 @@ abstract class ModPlatformPlugin @Inject constructor() : Plugin<Project> {
412409
modrinth(deps, currentVersion, additionalVersions, mrStaging, modrinthAccessToken)
413410
if (!mrStaging) curseforge(deps, currentVersion, additionalVersions, false, curseforgeAccessToken)
414411
}
412+
413+
extensions.configure<MavenPublishBaseExtension>("mavenPublishing") {
414+
coordinates(groupId = prop("maven_group"), artifactId = "${prop("mod_id")}-${loader}", version = "${stonecutter.current.version}-${modVersion}")
415+
416+
pom {
417+
name = "${prop("mod_name")} [${loader.replaceFirstChar(Char::titlecase)}]"
418+
description = prop("mod_description")
419+
url = prop("mod_source")
420+
scm {
421+
url = prop("mod_source")
422+
connection = prop("mod_source").replace("https", "scm:git:git") + ".git"
423+
developerConnection = prop("mod_source").replace("https://github.com/", "scm:git:git@github.com:") + ".git"
424+
}
425+
issueManagement {
426+
system = "github"
427+
url = prop("mod_issues")
428+
}
429+
licenses {
430+
license {
431+
name = "MPL-2"
432+
url = "https://www.mozilla.org/en-US/MPL/2.0/"
433+
}
434+
}
435+
developers {
436+
developer {
437+
id = prop("mod_authors").toDefaultLowerCase()
438+
name = prop("mod_authors")
439+
}
440+
}
441+
}
442+
}
443+
extensions.configure<PublishingExtension>("publishing") {
444+
repositories {
445+
maven {
446+
repositories {
447+
maven {
448+
name = "ModResources"
449+
val modResourcesURL = project.findProperty("MOD_RESOURCES") ?: System.getenv("MOD_RESOURCES")
450+
if (modResourcesURL != null)
451+
url = uri(modResourcesURL)
452+
}
453+
}
454+
}
455+
}
456+
}
415457
}
416458

417459
fun whenNotNull(stringProp: Property<String>, action: (String) -> Unit) {

gradle/libs.versions.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ devtools-ksp = "2.2.10-2.0.2"
1212
kotlin-jvm = "2.2.10"
1313
fletching-table = "0.1.0-alpha.22"
1414
moulberry-mixinconstraints = "1.1.0"
15-
vanniktech-maven-publish = "0.35.0"
15+
vanniktech-maven-publish = "0.36.0"
1616
mixin = "0.8.7"
1717

1818
[libraries]
1919
kikugie-postprocess = { module = "dev.kikugie:postprocess", version.ref = "stonecutter-postprocess" }
2020
mod-publish-plugin = { module = "me.modmuss50:mod-publish-plugin", version.ref = "mod-publish" }
2121
kikugie-stonecutter = { module = "dev.kikugie:stonecutter", version.ref = "stonecutter" }
22+
vanniktech-maven-publish = { module = "com.vanniktech.maven.publish:com.vanniktech.maven.publish.gradle.plugin", version.ref = "vanniktech-maven-publish"}
2223
fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" }
2324
foojay-resolver = { module = "org.gradle.toolchains:foojay-resolver", version.ref = "foojay" }
2425
fletching-table = { module = "dev.kikugie:fletching-table", version.ref = "fletching-table" }
@@ -32,6 +33,7 @@ fabricmc-loom = { id = "net.fabricmc.fabric-loom", version.ref = "fabric-loom" }
3233
neoforged-moddev = { id = "net.neoforged.moddev", version.ref = "neoforge-moddev" }
3334
jsonlang-postprocess = { id = "dev.kikugie.postprocess.jsonlang", version.ref = "stonecutter-postprocess" }
3435
mod-publish-plugin = { id = "me.modmuss50.mod-publish-plugin", version.ref = "mod-publish" }
36+
vanniktech-maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "vanniktech-maven-publish"}
3537
devtools-ksp = { id = "com.google.devtools.ksp", version.ref = "devtools-ksp" }
3638
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin-jvm" }
3739
fletching-table = { id = "dev.kikugie.fletching-table", version.ref = "fletching-table" }

stonecutter.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins {
99
alias(libs.plugins.devtools.ksp).apply(false)
1010
alias(libs.plugins.fletching.table).apply(false)
1111
alias(libs.plugins.legacyforge.moddev).apply(false)
12+
alias(libs.plugins.vanniktech.maven.publish).apply(false)
1213
}
1314

1415
stonecutter active file(".sc_active_version")

0 commit comments

Comments
 (0)