別リポジトリに存在するそれぞれのプロジェクトから自作のライブラリを読み込んだのでめも
以下2つ試して後者を採用した
- sbtでgithubリポジトリを指定する
- s3にprivate mavenを作ってそこから引く
githubリポジトリを直接projectへ追加する手法
以下のようにしてできた。
プロジェクトとしても扱えるし、public repositoryを扱うには凄くシンプルで良いと思った。
RootProject( uri("git://github.com/foo/bar.git#commit-id") )
private repositoryを扱う際はsshプロトコルを利用せねばならず、
sshプロトコルではバージョンを指定することができなかった
RootProject( uri("ssh://git@github.com/foo/bar.git") )
s3にprivate mavenを作ってそこから引く
fm-sbt-s3-resolverで簡単にできた。
s3へのアクセスには環境変数のaws_access_key_id,aws_secret_access_keyを利用している
- plugin.sbt
addSbtPlugin("com.frugalmechanic" % "fm-sbt-s3-resolver" % "0.9.0")
- build.sbt
name := """test-app"""
organization := "jp.hoge" // これがgroupIDになる
scalaVersion := "2.11.7
version in ThisBuild := git.gitHeadCommit.value.map(_.take(8)).getOrElse("0.1-SNAPSHOT") // sbt-gitを利用してcommit idをversionとして利用
resolvers += "hoge Snapshots" at "s3://${bucket_name}.s3-ap-northeast-1.amazonaws.com/${keyName}",
publishTo := Some("hoge Snapshots" at "s3://${bucketName}.s3-ap-northeast-1.amazonaws.com/${keyName}"),
publish
$ sbt publish
以下にpublishされる。
s3://${bucketName}/${keyName}/${groupID}/${name}_${scalaVersion}/${version}
resolve
libraryDependencies += "jp.hoge" %% "${name}" % "${version}"
シンプルっ