読者です 読者をやめる 読者になる 読者になる

kentsu.dat

何かその時の興味でいろいろする人。最近はScala使ってる。アルゴリズムと自然言語処理、深層学習が大好き。

【メモ】sbtで自作ライブラリを使えるようにした話

とりあえず公開したかった。

なんか公開したかった。
sbtで使えるようにしたかった。

何をやったか

とりあえず次のサイトを参考にしてあれこれした

qiita.com
qiita.com
d.hatena.ne.jp


具体的には

  • ライブラリをビルドする
  • github pagesを作成しそこにビルドしたやつをぶん投げる
  • wgetでテストする
  • sbtで使えるかテストする

ライブラリをビルドする。

とりあえず、sbtプロジェクトに作成してるであろうBuild.scala,build.sbt的なあれこれに次を追加する。

Build.scalaならsettingsの中に突っ込んでください。
それ以外のname,version,scalaVersionはもうすでに設定したものとする。

publishTo := Some(Resolver.file("名前",file("jar,pomなどを作成するディレクトリを指定"))(Patterns(true, Resolver.mavenStyleBasePattern)))

ここで一度プロジェクトをコンパイルする。

$ sbt compile


これでokなら次を実行する

$ sbt publish

するとさっき指定したディレクトリに「名前」のディレクトリとその直下に「名前_ScalaVersion」のディレクトリが生成されている

github pagesを作成しそこにビルドしたやつをぶん投げる

公開したいライブラリがgithubのレポジトリにあるとして、そのレポジトリにgh-pagesというブランチを作る。
とりあえずそこにindex.htmlを投げる。

そしていつもどおりgh-pagesにpushする。

その勢いでさっきビルドしたあれこれをぶん投げる。
手順はこれで終わり。

wgetでテストする

次のコマンドを走らせてdlできればok

 wget https://[username].github.io/reponame/projectname/projectname_scalaVersion/version/projectname_scalaVersion-version.jar

これでダウンロードできないなら何かしら失敗しているか、gh-pagesの反映に時間がかかることがあるので最初にリンクを張ったサイトをみてどうにかしてみる。

sbtで使えるかテストする

適当にプロジェクト作るかどうにかして別のBuild.scalaで使うには次のようにする

//ライブラリを追加するところに
"projectName" % "projectName_scalaVersion" % "Version"

//resolverを作って次を記述
resolvers += "Maven Repo on github" at "https://[username].github.io/projectName/"


これでダウンロードできる(はず)