github に maven リポジトリを作ってみた

http://d.hatena.ne.jp/alpha_neet/20111030/1319994407 の続きです。
前回ローカルにリポジトリを作成してみたので、次は github 上に作成してみます。


http://www.pshared.net/diary/20100912.html を参考にしました。

pom.xml の修正

前回との違いは url がローカルパスから github の url になっている点です。
https://github.com/alphaneet/sample-maven-repo/blob/master/hello/work_2.9.1/1.0/work_2.9.1-1.0.pom#L14 な感じにします。

github にデプロイ

mvn -DaltDeploymentRepository=hello-work::default::file:sample-maven-repo clean deploy

sample-maven-repo ディレクトリが作られていれば成功。


plugin とか使えば出来るかもしれませんが、デフォルトの状態では github に直接デプロイ出来ないので、別の場所に吐き出して手動で git push します。
DaltDeploymentRepository はエクスポート先のパスっぽいです。


githubリポジトリを作った後に

cd sample-maven-repo
git init
git add .
git commit -m 'add hello-work'
git remote add origin git@github.com:alphaneet/sample-maven-repo.git
git push origin master

sbtで使用してみる

ほぼ前回と一緒です。resolvers の追加をローカルパスでなく github の url にするだけですが、
通常の URL + /raw + /ブランチ名(多分) にしなければなりません。今回ならば


https://github.com/alphaneet/sample-maven-repo/raw/master


が基準となる url です。

vim build.sbt
vim main.scala

  • build.sbt
resolvers += "github Maven Repository" at "https://github.com/alphaneet/sample-maven-repo/raw/master"

libraryDependencies += "hello" %% "work" % "1.0"
object Main {
  def main(args: Array[String]) {
    println(new (hello.App).hatarake)
  }
}


実行する前にちゃんと githubリポジトリを見てるか確認するため
前回のローカルリポジトリ作った時に取得したのキャッシュを消しておきます。

rm ~/.ivy2/cache/hello/
sbt run

「Hello Work! 1.2.1」と表示されたら成功。
1.2.1 は気にしないでください。バージョン色々試してたら直すの忘れてました。
もっかいデプロイするのめんどかったのでそのままにしました。ごめんなさい。