ikeike443のブログ

ソフトウェアビジネスに関心がある系のブログ

sbtで社内Mavenリポジトリにパブリッシュ

社内に簡素なMavenリポジトリ(Nexusみたいなリッチなものを使ってなくてsshと80番しか開けてないようなの)を構築していて、作ったライブラリをそこにパブリッシュしたい場合、下記のように設定すると上手く動く。というメモ。

build.sbt にこんなふうに書いて、

publishMavenStyle := true

publishTo <<= (version) { version: String => 
  val rootpath = "/path/to/maven repo/" 
  val path = 
    if (version.trim.endsWith("SNAPSHOT")) rootpath + "snapshots/" 
    else rootpath + "releases/" 
  Some(Resolver.sftp("My Maven Repo", "my.maven.repo.domain", path) as("username", "password" ) )
}

下記のようにすれば、パブリッシュ出来る*1

$ sbt publish


Nexusを使ってる場合のサンプルは比較的見つかったけど、それ以外のケースが見当たらなかったのでメモとして書いておく。

sbtって難しいよね。色々出来るようにしてるのは分かるんだが、正直調べるのも理解するのも面倒。

よくある業務パターンに応じた設定テンプレートみたいなのをドキュメントとして作って行かないと、色々つらいなあとか思いました。

*1:ちなみにsbtのバージョンは0.11.3で確認