Skip to content

Instantly share code, notes, and snippets.

@numa08
Created August 4, 2013 04:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save numa08/6149085 to your computer and use it in GitHub Desktop.
Save numa08/6149085 to your computer and use it in GitHub Desktop.
新宿Scala座 第3回

sbt2jar

Agenda

  • 前回のあらすじ
  • What sbt?
  • sbt2jar?
  • sbt publish
  • sbt-assembly

前回のあらすじ

  • PlayFrameworkでVirtualBoxSDKを触った
  • 仮想マシンの電源の変化をWebSocketでPushしたかった
  • ドキュメントを読んでもよくわからないので、サンプルを動かそうとした
  • 動かなかった・・・

What sbt?

sbtは基本的なことに狙いをつけたJavaとScalaのためのビルドツールらしいよ。

Packages and publishes jarsらしいよ

sbt2jar

成果物をjarで取り出したいよね!!

とりあえず翻訳しておいた

sbt publish

PublishはIvyやMavenと言った対象へのアップロードや他のプロジェクトが依存するリポジトリのjarやwarを構成します。

publishはリモートリポジトリーへのデプロイを行います。publishを使うには、デプロイ先のリポジトリと利用するための証明を明記する必要があります。その辺りが準備できたら、publishを実行しましょう。

publish-localはローカルなIvyリポジトリへのデプロイを行います。同じマシンの別のプロジェクトで利用をすることができます。

sbt-assembly

assembly-sbtはSBTのプロジェクトを依存を含む形状で単一のjarファイルとし、デプいろいしたりシェルスクリプトにしたり、ライブラリにしたり、warにもできるよ。

とりあえず試した

!SLIDE

  • ライブラリとして出力をする。
  • 依存関係は解消してくれないよ
  • 実行ファイルを作るアレではないのです。
  • publish-localだけなら特に設定はいらない
  • sbtのplugin
  • ちょこっと設定が必要
  • 依存関係も含めてJarにしてくれる
  • 実行ファイルとか作るならこっちですね

build.sbt

import AssemblyKeys._ 

//各行は1行あける
assemblySettings

//出力するjarの名前
jarName in assembly := "chocola.jar"

//テストを選択する。(空欄は全部無視?)
test in assembly := {}

はまったところとか

  • VirtualBoxでマウントしたディレクトリで、sbt-assemblyできなかった
  • Windowsに死を
  • sbt.IO.unzipで死んでるっぽいけど、調査する気にはなれない・・・

次回予告

  • 今度こそWebSocketを頑張る
  • プリキュアハッカソンしたい
  • デ・ジ・キャラットハッカソンしたい
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment