archetypeをMaven Central Repositoryに登録する

f:id:blackawa:20170929020542p:plain

作ったarchetypeMaven Central Repositoryに登録した。 Railsくらいとはいかなくても、せっかくSpringはモジュールが揃ってるんだから、プロジェクト作成した瞬間に機能の雛形が手に入る世界を作りたい。

やったこ

  • JIRAチケットを切る。
  • 鍵生成する。
  • Maven Central Repositoryに登録する。

チケットを切る

Maven Central Repositoryにリリースするには、まずSonatypeのOSS Repositoryに登録してそこでリリース資材を作るとMaven Central Repositoryに同期されるっぽい。

ので、まずSonatype OSS Repositoryに登録する。ために、チケットを起票する。

http://central.sonatype.org/pages/ossrh-guide.htmlにあるとおりにする。ここで手順書いてもいつまで正しいかわからんし。 書くべき項目がいくつかあるのでそれを守る。 チケット種別に気をつけて。

ちなみに今回起票したのはこのチケット。ご参考までに。 [OSSRH-34598] spring-bootstrapping-archetype - Sonatype JIRA

返事が来るのを待つ

自分のドメイン blackawa.jp をgroupIdに指定したら、「ほんとにそのドメイン持ってる?別にgithub.ioドメインとか使っていいんだよ」ってコメントがついて、「もってるよ。なんか証明書類必要なら教えて」って言ったら承認された。

承認されるとSonatype OSS Repositoryにjarをアップロードできるようになったよ、ってコメントがつくので、そしたらアップロードできる。

GnuPG鍵を生成して登録する

アップロードするためには、鍵を作って鍵サーバーに登録し、jarに署名しないといけない。 Working with PGP Signaturesで言われたとおりにする。正直よくわからん。

Maven Centralのstagingにデプロイする

~/.m2/settings.xmlを以下のような内容にして mvn clean deploy する。 これがちょっとわかんなくてハマった。

ossrhの方のid/passwordはチケット起票した時にログインしたJIRAと同じやつってどこにも書いてなかった気がするけど雰囲気で入れてみたらそうだった。 英語斜め読みしかできないから多分見逃した。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
  https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>ossrh</id>
      <username>blackawa</username>
      <password>*****</password>
    </server>
    <server>
      <id>gpg.passphrase</id>
      <passphrase>*****</passphrase>
    </server>
  </servers>
</settings>

deployできたらhttps://oss.sonatype.org/#nexus-search;quick~spring-bootstrapping-archetypeで検索にヒットするようになる。 そしたらJIRAチケットにコメントがついて、maven central repositoryには10分後くらいに、search.maven.org には2時間後くらいに反映されるよ、と教えてもらえる。

ハマりどころ

鍵情報がないのもログインできないのも全部401 Unauthorizedしか言われないのがちょっとしんどかったけど、分かれば大したことなかった。 pom.xmlけっこうちゃんと書かないといけない。けどそれはちゃんと具体的に怒られるから良かった。

参考

https://maven.apache.org/guides/mini/guide-central-repository-upload.html http://central.sonatype.org/pages/apache-maven.html http://central.sonatype.org/pages/working-with-pgp-signatures.html