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_version
File 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"),
))
}