編集可能

sbt-sonatypeを使ってScalaのライブラリをリリースしてみた

@taroleo さんの sbt-sonatype https://github.com/xerial/sbt-sonatype プラグインを使って、nscala-time https://github.com/nscala-time/nscala-time の新しいバージョンをリリースしてみたところ便利だったのでまとめてみました。はまった箇所は自分がsbtのプラグイン設定を間違えていただけです。
プログラミング Java関連 言語 sbt Scala
3
Kenji Yoshida @xuwei_k
@kmizu nscala-time 、Scala2.11.0-M8でもビルド設定してみて成功したので、できればそろそろScala2.11.0-M8版リリースしたほうが
Taro L. Saito @taroleo
@kmizu @xuwei_k その際にはsbt−sonatypeを試してもらえるとうれしいです。
Taro L. Saito @taroleo
@kmizu @xuwei_k cross buildだとpublish-signedで複数stagingされるので、sbt release-sonatype (repository id) を指定しないといけないかもしれません。
Taro L. Saito @taroleo
@kmizu @xuwei_k web interfaceでも一つ選ぶのは一緒なんですよね。もう少しstaging repositoryの情報が取れるとscala version、pom.xmlなどから紐付けできるのですが
Taro L. Saito @taroleo
@kmizu @xuwei_k まとめてrelease-sonatypeできた方が便利そうならあとで追加します〜
Taro L. Saito @taroleo
@kmizu @xuwei_k release-all-sonatypeコマンドを追加しました。version 0.1.5 https://t.co/DneplDFdGm
Kenji Yoshida @xuwei_k
@kmizu え、それは単にpluginの設定場所間違えてるのでは?
Taro L. Saito @taroleo
@kmizu @xuwei_k publish-signedのphaseにはsbt-sonatypeは関わってないので、~/.sbt/(sbt 2.10.x)/project/plugins.sbt にだけaddPluginしておくと良いのかもしれないですねぇ
Taro L. Saito @taroleo
@kmizu @xuwei_k ああ、それじゃsettingが読み込めないのか。さてさて
Kenji Yoshida @xuwei_k
@kmizu グローバルにおくなら ~/.sbt/0.13/plugins/ の下です。ただどちらにしろ、build.sbtにsonatypeSettings入れないといけないので、グローバルじゃなくて、project/plugins.sbtに書いてしまっていいと思います
Taro L. Saito @taroleo
@kmizu @xuwei_k Scala2.9のときには、sbt-sonatypeやsonatypeSettingsを読み込まないようにして、+ publishSignedを実行ですかね。release-all-sonatypeは+を付けずに実行
Kota Mizushima (on a diet) @kmizu
@xuwei_k そこはちと悩みどころだったんですが、build.sbtにsonatypeSettings入れてしまって、その他がglobalだと他の人がそのままビルドできなくなるから、確かにその方がいいのかもですね。
Kenji Yoshida @xuwei_k
@kmizu あ、べつにsonatypeSettingsもグローバル( ~/.sbt/0.13/build.sbt )に書けばできるはず?なので、どっちでもいいですかね
Taro L. Saito @taroleo
@xuwei_k @kmizu できそうですね。scalaVersionによるswitchを入れるのが面倒なら
Kota Mizushima (on a diet) @kmizu
@xuwei_k profileNameはグローバルに置く訳にはいかなそうなので、project/plugins.sbt に書いた方がやはりいいかなと思ってます。
Kenji Yoshida @xuwei_k
@taroleo @kmizu Scala2.9のときのさっきのエラーは、pluginの設定場所間違ってただけで、べつに2.9だろうと関係ないです。sbtのグローバルディレクトリもsbt0.12と0.13で別れてますし。scalaVersionでのswitchなんて必要ないはず
Kenji Yoshida @xuwei_k
@kmizu あーはい。まぁprofileNameはorganizationと同じはず?なので、大抵の場合書かなくてもいけるとは思いますけど
Kota Mizushima (on a diet) @kmizu
@xuwei_k あー、それは確かにそうかもしれないですね…。とりあえずproject傘下に入れてますが、今度はうまくいってるようです。仰る通り、globalのplugins.sbt置く場所(0.13の場合の)間違えてただけっぽいです。
Kota Mizushima (on a diet) @kmizu
ほぼ変更点ないのに、Scala 2.11.0-M8版をクロスビルドに含めるためだけにバージョン番号を0.8に上げたのはちょっと微妙かもだけど、まあ問題はないよね…。 #nscala_time #scala_jp
Kota Mizushima (on a diet) @kmizu
というわけで、 sbt-sonatype plugin使ってnscala-timeライブラリをpublishしてみましたが、めんどくさいGUI通さずリリースできて便利なので他の人も試してみるといいと思います! #sbt_sonatype #scalajp
Kenji Yoshida @xuwei_k
@kmizu たぶん本体の変更は、このコミットくらいですね https://t.co/xZph8XYiPi (前回value classにしたときに、抜けがあった)
Kota Mizushima (on a diet) @kmizu
@xuwei_k 使い方によって少しだけ性能に差がでるかどうかってところですね。

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする