とりあえず使えるSBT

Post on 11-Nov-2014

849 views 0 download

Tags:

description

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

Transcript of とりあえず使えるSBT

とりあえず 使えるSBT

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

ver 1.0

自己紹介

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

対象者

•REPLが使える人

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

•Scala学習中の人

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

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

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

SBT

sbt

•Simple(?????)

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

0.13.5 or later

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

•こないだ0.13.6がでた

.sbt or .scala

•基本は.sbtに

•複雑な処理は.scalaに

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

目的

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

•あんまり踏み込まない

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

やること

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

•依存ライブラリの取得

•sbtプラグインの追加

•基本コマンドの利用

プロジェクト作成

Typesafe Activator

•sbt-np pluginいらず

•scala, java, playの雛形生成

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

•play2.3から標準仕様

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

https://typesafe.com/activator

Typesafe Activator

•activator コマンド

• IDE対応

デモ

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

activator new

http://youtu.be/-C_ICX8Df0c

やっぱIDEがいい activator ui

activator ui

http://youtu.be/QB__3dfFNYU

IDE

http://youtu.be/wRXm6HvSGCU

基本の設定

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

•メソッド

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

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

依存ライブラリの 取得

依存ライブラリの取得

•% と %%

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

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

% と %%

•マネージド依存性

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

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

デモ

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

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") !…

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

http://youtu.be/j9xLQDM58cc

コンフィギュレーション

•groupID % artifactID % revision % configuration

•testとかcompileとか

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

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

基本タスクの利用

基本タスクの利用

•test - テストの実行

•run - プロジェクト実行

•compile - コンパイル

•package - jar化

基本タスクの利用

http://youtu.be/U7e31Ezg2H8

まとめ

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

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

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

Enjoy.Scala!!