Skip to content

📅 2025-06-12 | 🔄 2025-07-02

Minecraft ModをMaven Centralに公開する時の罠

#minecraft #coding

Im-Fran/SonatypeCentralUploadを利用して、Minecraft ModをMaven Centralに公開するときに遭遇した罠について書く。

公開の具体的な手順についてはこの記事様を参考にしてほしい。

環境

  • Minecraft 1.12.2
  • Minecraft Forge 14.23.5.2847
  • RetroFuturaGradle 1.3.27

versionがunspecifiedになる。

例えば

* What went wrong:
Execution failed for task ':sonatypeCentralUpload'.
> Artifact name 'mctest-dev.jar' does not match or does not start with project name 'mctest-unspecified'.

のように、バージョンの部分がunspecifiedになってしまう問題。

これはSonatypeCentralUpload pluginがproject.versionからバージョンを取得しているためである。 例えばCleanroomMCのTemplateDevEnvの場合、バージョンが格納されている変数はmod_versionであるため、このようなエラーとなってしまう。

project.versionを指定すれば解決できる。

build.gradle.kts
kotlin
project.version = mod_version

File path '**' is not valid for file '**'

versionと同じく、グループIDもproject.groupから取得される。

build.gradle.kts
kotlin
project.group = maven_group

無印の.jarがなく、{-dev,-javadoc,-sources}.jarしかない

タスクjarが生成するのは、-dev.jarである。 これはjarファイルをModとして使用するには再度難読化を行わないといけないためである。 それを行うタスクはreobfJarなので、これを指定すると無印のjarファイルを生成してくれる。

build.gradle.kts
kotlin
tasks.named<SonatypeCentralUploadTask>("sonatypeCentralUpload") {
    dependsOn("jar", "reobfJar", "sourcesJar", "javadocJar", "generatePomFileForMavenPublication")
    // ...
    
    archives.set(files(
        tasks.named("jar"),
        tasks.named("reobfJar"), 
        tasks.named("sourcesJar"),
        tasks.named("javadocJar"),
    ))
}

Released Under the MIT License