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を指定すれば解決できる。
kotlin
project.version = mod_versionFile path '**' is not valid for file '**'
versionと同じく、グループIDもproject.groupから取得される。
kotlin
project.group = maven_group無印の.jarがなく、{-dev,-javadoc,-sources}.jarしかない
タスクjarが生成するのは、-dev.jarである。 これはjarファイルをModとして使用するには再度難読化を行わないといけないためである。 それを行うタスクはreobfJarなので、これを指定すると無印のjarファイルを生成してくれる。
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"),
))
}