📌
Minecraft ModをMaven Centralに公開する時の罠
Im-Fran/SonatypeCentralUpload
を利用して、Minecraft ModをMaven Centralに公開するときに遭遇した罠について書く。
公開の具体的な手順についてはこの記事様を参考にしてほしい。
環境
- Minecraft 1.12.2
- Minecraft Forge 14.23.5.2847
- RetroFuturaGradle 1.3.27
unspecified
になる。
versionが例えば
* 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
project.version = mod_version
File path '**' is not valid for file '**'
version
と同じく、グループIDもproject.group
から取得される。
build.gradle.kts
project.group = maven_group
.jar
がなく、{-dev,-javadoc,-sources}.jar
しかない
無印のタスクjar
が生成するのは、-dev.jar
である。
これはjarファイルをModとして使用するには再度難読化を行わないといけないためである。
それを行うタスクはreobfJar
なので、これを指定すると無印のjarファイルを生成してくれる。
build.gradle.kts
tasks.named<SonatypeCentralUploadTask>("sonatypeCentralUpload") {
- dependsOn("jar", "sourcesJar", "javadocJar", "generatePomFileForMavenPublication")
+ dependsOn("jar", "reobfJar", "sourcesJar", "javadocJar", "generatePomFileForMavenPublication")
// ...
archives.set(files(
tasks.named("jar"),
+ tasks.named("reobfJar"),
tasks.named("sourcesJar"),
tasks.named("javadocJar"),
))
}
Discussion