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で確認