View
2.344
Download
0
Category
Preview:
Citation preview
PlayFramework 2.0プラグインイロハのイ
原 一浩 @kara_d
本日のセッション内容 ➡ Playプラグインを入れてみよう➡ Playプラグインとはなにか➡ Typesafe社製プラグインでまなぶオリジナルプラグイン作成のための構成
3
Playプラグインを入れてみよう
4
入れてみるプラグイン
➡ Groovy Template Engine for Play 2 ➡ play2-project-info
5
アプリケーション用プラグイン➡ Groovy Template Engine for Play 2• https://github.com/mbknor/gt-engine-play2
6
デモ
Build.scalaに書く
7
val appDependencies = Seq( // Add your project dependencies here, "kjetland" %% "gt-‐engine-‐play2" % "0.1.6")
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings( // Add your own project settings here resolvers += "mbknor github Repository" at "http://mbknor.github.com/m2repo/releases/" )
Runした後に依存管理が行われる
8
[info] Updating {file:/Users/hoge/study_play20/testSample5/}testSample5...[info] Resolving org.hibernate.javax.persistence#hibernate-‐jpa-‐2.0-‐api;1.0.1.Fin [info] downloading http://mbknor.github.com/m2repo/releases/kjetland/gt-‐engine-‐play2_2.9.1/0.1.6/gt-‐engine-‐play2_2.9.1-‐0.1.6.jar ...[info] [SUCCESSFUL ] kjetland#gt-‐engine-‐play2_2.9.1;0.1.6!gt-‐engine-‐play2_2.9.1.jar (2004ms)[info] downloading http://mbknor.github.com/m2repo/releases/kjetland/gt-‐engine_2.9.1/0.1.7.12/gt-‐engine_2.9.1-‐0.1.7.12.jar ...[info] [SUCCESSFUL ] kjetland#gt-‐engine_2.9.1;0.1.7.12!gt-‐engine_2.9.1.jar (1179ms)[info] downloading http://repo.typesafe.com/typesafe/releases/org/codehaus/groovy/groovy/1.8.6/groovy-‐1.8.6.jar ...
コンソール用プラグイン➡ Project Information module for Play2!• https://github.com/karad/play2-project-info
9
デモ
Plugins.sbtに書く
10
resolvers += "Greative Maven Repository" at "https://github.com/karad/maven-‐repo/raw/master/release/"
addSbtPlugin("jp.greative" % "play2-‐project-‐info-‐sbt" % "0.1")
Playプラグインとはなにか
11
Playプラグインは、➡ Play上の機能追加、依存管理する仕組み• アプリケーションの機能拡張• ライブラリの追加• 対話型コンソールの機能拡張
➡ Playのプラグイン自体は、コンパイル済みのjar• これをsbtを使って依存管理する• ただし、Playコンソール系は別
12
Playコンソールについて➡ Playコンソールはsbtコンソールの拡張➡ sbt• sbt is a build tool for Scala and Java projects that aims to do the basics well. It requires Java 1.6 or later.
➡ .sbtと.scala• .sbt build definition uses a Scala-based "domain-specific language" (DSL)
➡ 始める sbt• http://scalajp.github.com/sbt-getting-started-guide-ja/
13
Playとsbtの関係➡ Play 2.0以降、sbtが全面採用• Playコマンド用• ライブラリ、プラグインの依存管理用• ビルド用
14
Playにおけるプラグインの種類➡ アプリケーション• Model• Controller• View- Tag
➡ クラスライブラリ• jar
➡ コンソール• sbtのコンソール- sbtプラグインとして作成
15
Playプラグインは何で書くの?➡ クラスライブラリとしてのプラグイン• Java/Scala両方
➡ アプリケーションのプラグイン• プロジェクトによる
➡ コンソール型のプラグイン• Scala
16
Typesafe社製プラグインでまなぶオリジナルプラグイン作成のための構成
17
参考になるもの➡ play-plugins• https://github.com/typesafehub/play-plugins- dustプラグインとか参考になる
➡ play本体• project- Build.scala
• framework- src
consolesbt-plugin
18
フォルダ構成➡ conf/• application.conf
➡ project/• build.properties• Build.scala• plugins.sbt
➡ sbt-plugin/• src/- main/
scala/
➡ README.md19
使うファイル➡ プラグイン本体のソース• HogeKeys.scala• HogePlugin.scala• HogeTasks.scala
➡ ビルド用ファイル• Build.scala
20
デモ
リポジトリってどうなってるの?➡ Gitをmavenリポジトリとしているプラグインが多い• ライブラリのリポジトリと、mavenリポジトリで分ける• メリット- URLが出来る- マニュアル置ける- アップロード楽- 無料
21
デモ
ありがとうございました
22
7/14 第3回playframework勉強会http://playframeworkja.doorkeeper.jp/events/1231-%E7%AC%AC3%E5%9B%9Eplayframework%E5%8B%89%E5%BC%B7%E4%BC%9A-play_ja
日本Play frameworkユーザー会https://groups.google.com/group/play_ja?hl=ja
Recommended