SNAPSHOT版とはいえなんとか勉強会当日にリリースが間に合い、そこそこの笑いを取ることができた。
sbt はご存知の通り、ver間の互換性に難があり、sbt 0.13.1でのライブラリ開発はちょくちょく詰まりポイントがあった。Travis CI, Coverallsの利用など、多くはsbtのverによる依存関係の問題で、基本的には各pluginやライブラリの最新版を使うことで解決することができた。
Maven Centralリポジトリへの登録も、基本的にはsbtのドキュメントの通りで問題なかったのだが、ちょくちょく苦労したポイントがあったのでまとめておこうと思う。
環境は
sbt version: 0.13.1
scala version: 2.10.3
Mac OS X 10.9.1
Mac OS X 10.9.1
1. Sonatype OSSRHでJIRA登録
まずはSonatype JIRAにユーザ登録し、ログイン。その後画面の左上あたりにある"create issue"をクリックし、必要事項を記入する。
Issue Type: "New Project"を選択
Summary: プロジェクトの概要
Group Id: build.sbtなどに設定している、organizationの値
Project Url: プロジェクトのサイトURL(githubのURLで良い)
SCM Url: githubのURL
ちなみにdmm4sのチケットはこちら
しばらく(1日くらい?)待っていると、中の人が設定終わったよ、という返信をくれる。
僕は深夜にJIRA登録したのだが、登録後10分くらいで返信が来てビビったw
2. PGPキーの作成
gpg --gen-keyコマンドでPGPキーを作る。gpgが入って無ければ、
brew install gpgでインストールできる。
gpg --lisy-keyで作成されたキーを確認し、
gpg --keyserver http://pool.sks-keyservers.net --send-keys {キーID}でkeyserverに公開鍵を登録する。
3. sbtのセッティングとpublish
http://www.scala-sbt.org/0.13.1/docs/Community/Using-Sonatype.html
上記のドキュメントに従い、sbtに各種設定を追記する。
基本的にはここに書かれているコードをコピペしつつ、sonatypeのパスワードとか、自分のプロジェクトのURLなどを書き換えればいいのだが、publish時にPGPキーの署名をする部分でうまくいかなかった。
sbt 0.13 でPGPキーの署名をしつつpublishするには、SBT PGP Pluginをインストールし、sbtで
publishSignedのコマンドを実行する。
上記のsbtドキュメントにもSBT PGP Pluginへのリンクが貼ってあり、ここに"~/.sbt/plugins/gpg.sbt"ファイルを作成して、"addSbtPlugin("com.typesafe.sbt" % "sbt-pgp" % "0.8.1")”と書け、とある。
僕もそれに従ったのだが、sbtで"publishSigned"のコマンドを認識してくれない。
これは、ファイルの作成場所が間違っており、正しくは"~/.sbt/0.13/plugins/gpg.sbt"が正しい。
4.リリースの処理を実行
https://oss.sonatype.org/index.htmlにアクセスし、sonatype JIRAと同じアカウント、パスワードでログインする。
左側の一覧から"Staging Repositories"をクリックすると、一覧が表示され、自分のプロジェクト選択。"close"を実行する。ここで成功したら"release"を実行。
あとはJIRAに、リリースした旨をコメントすれば、中の人がCentralリポジトリに同期させてくれる。
とまぁ、こんな感じ。
0 件のコメント:
コメントを投稿