LoginSignup
2
2

More than 5 years have passed since last update.

sbtでプライベートリポジトリをライブラリとして扱う

Last updated at Posted at 2017-02-21

別リポジトリに存在するそれぞれのプロジェクトから自作のライブラリを読み込んだのでめも

以下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}"

シンプルっ

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2