とりあえず使えるSBT

36
とりあえず 使えるSBT @Kuchitama 関西Scalaビギナーズ 2014/09/20 ver 1.0

description

Scala関西ビギナーズ#4の発表資料です。 2014/09/23 発表時に使用した資料に更新しました.

Transcript of とりあえず使えるSBT

Page 1: とりあえず使えるSBT

とりあえず 使えるSBT

@Kuchitama 関西Scalaビギナーズ 2014/09/20

ver 1.0

Page 2: とりあえず使えるSBT

自己紹介

•@Kuchitama(国平清貴) • FuRyu株式会社 • 勉強会 • Kyoto.clj (Clojure) • ScalaMatsuriスタッフ • 関西ソーシャルゲーム勉強会

Page 3: とりあえず使えるSBT

対象者

•REPLが使える人

•ちょっと実践的なScalaプログラミングがしたくなった人

•Scala学習中の人

Page 4: とりあえず使えるSBT

イメージScalaなんとなくわかってきたし、PlayでWebアプリ作ってみたい

とりあえず、ちょっとしたワンランナー書いてみたい

REPLに飽きたので、ちょっと実践的なプロジェクトやってみたい

Page 5: とりあえず使えるSBT

SBT

Page 6: とりあえず使えるSBT

sbt

•Simple(?????)

•最近本家でもSimpleの表記が消えた •ScalaのデファクトスタンダードなBuild Tool

Page 7: とりあえず使えるSBT

0.13.5 or later

•ver.1に向けての準備段階

•こないだ0.13.6がでた

Page 8: とりあえず使えるSBT

.sbt or .scala

•基本は.sbtに

•複雑な処理は.scalaに

•再利用できそうならpluginに

Page 9: とりあえず使えるSBT

目的

•sbtで最低限押さえておきたい使い方をまとめる

•あんまり踏み込まない

•あくまでScalaを使うために必要な部分のみを抽出

Page 10: とりあえず使えるSBT

やること

•プロジェクト作成(activator)

•依存ライブラリの取得

•sbtプラグインの追加

•基本コマンドの利用

Page 11: とりあえず使えるSBT

プロジェクト作成

Page 12: とりあえず使えるSBT

Typesafe Activator

•sbt-np pluginいらず

•scala, java, playの雛形生成

•プロジェクトテンプレートの取得

•play2.3から標準仕様

•(sbt/play) + new ぐらいの印象

https://typesafe.com/activator

Page 13: とりあえず使えるSBT

Typesafe Activator

•activator コマンド

• IDE対応

Page 14: とりあえず使えるSBT

デモ

Page 15: とりあえず使えるSBT

新規プロジェクト作成 activator new

Page 16: とりあえず使えるSBT

activator new

http://youtu.be/-C_ICX8Df0c

Page 17: とりあえず使えるSBT

やっぱIDEがいい activator ui

Page 18: とりあえず使えるSBT

activator ui

http://youtu.be/QB__3dfFNYU

Page 19: とりあえず使えるSBT

IDE

http://youtu.be/wRXm6HvSGCU

Page 20: とりあえず使えるSBT

基本の設定

Page 21: とりあえず使えるSBT

基本の設定•(キー) (メソッド) (Setting[s])

•メソッド

• := キーに対してSettingを更新 • += キーにSettingを追加 • ++= キーにSettingを複数追加

Page 22: とりあえず使えるSBT

name := """scalakb_sample""" !version := "1.0" !scalaVersion := "2.11.1" !// Change this to another test framework if you prefer libraryDependencies += "org.scalatest" %% "scalatest" % "2.1.6" % “test" !// Uncomment to use Akka //libraryDependencies += "com.typesafe.akka" % "akka-actor_2.11" % "2.3.3" !

基本の設定build.sbt

Page 23: とりあえず使えるSBT

依存ライブラリの 取得

Page 24: とりあえず使えるSBT

依存ライブラリの取得

•% と %%

•コンフィギュレーション

ライブラリ依存性 http://www.scala-sbt.org/0.13/tutorial/ja/Library-Dependencies.html

Page 25: とりあえず使えるSBT

% と %%

•マネージド依存性

• <-> アンマネージド依存性 •sbt(の内部のivy)に依存性を管理してもらう

Page 26: とりあえず使えるSBT

% と %%•% • Scalaのバージョンを指定して依存を解決 • Javaのライブラリを使いたいときはこっち • groupId % artifactId % revision •%% • Scalaのバージョンを自動で追加して依存を解決 • groupId %% artifactId % revision

Page 27: とりあえず使えるSBT

デモ

Page 28: とりあえず使えるSBT

依存ライブラリを 追加してみる

build.sbtname := """scalakb_sample""" !version := "1.0" !scalaVersion := "2.11.1" !// Change this to another test framework if you prefer libraryDependencies ++= Seq( “org.scalatest" %% "scalatest" % "2.1.6" % “test”, "joda-time" % "joda-time" % “2.4”, "com.github.scopt" %% "scopt" % “3.2.0") !…

Page 29: とりあえず使えるSBT

依存ライブラリを 追加してみる

http://youtu.be/j9xLQDM58cc

Page 30: とりあえず使えるSBT

コンフィギュレーション

•groupID % artifactID % revision % configuration

•testとかcompileとか

•使う時だけ依存解決できる

Page 31: とりあえず使えるSBT

name := """scalakb_sample""" !version := "1.0" !scalaVersion := "2.11.1" !// Change this to another test framework if you prefer libraryDependencies += "org.scalatest" %% "scalatest" % "2.1.6" % “test" !// Uncomment to use Akka //libraryDependencies += "com.typesafe.akka" % "akka-actor_2.11" % "2.3.3" !

コンフィギュレーションbuild.sbt

Page 32: とりあえず使えるSBT

基本タスクの利用

Page 33: とりあえず使えるSBT

基本タスクの利用

•test - テストの実行

•run - プロジェクト実行

•compile - コンパイル

•package - jar化

Page 34: とりあえず使えるSBT

基本タスクの利用

http://youtu.be/U7e31Ezg2H8

Page 35: とりあえず使えるSBT

まとめ

•activatorで簡単にプロジェクト作成

•依存ライブラリの取得は % or %%

•基本のsbtタスクは覚えやすい

Page 36: とりあえず使えるSBT

Enjoy.Scala!!