Más contenido relacionado La actualidad más candente (20) Similar a Playbay Play 2.0 plugin イロハのイ (20) Más de Kazuhiro Hara (20) Playbay Play 2.0 plugin イロハのイ2. 原 一浩 @kara_d http://greative.jp/
3. 本日のセッション内容
➡ Playプラグインを入れてみよう
➡ Playプラグインとはなにか
➡ Typesafe社製プラグインでまなぶ
オリジナルプラグイン作成のための構成
3
5. 入れてみるプラグイン
➡ Groovy Template Engine for Play 2
➡ play2-project-info
5
6. アプリケーション用プラグイン
➡ Groovy Template Engine for Play 2
• https://github.com/mbknor/gt-engine-play2
デモ
6
7. Build.scalaに書く
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/"
)
7
8. Runした後に依存管理が行われる
[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
...
8
9. コンソール用プラグイン
➡ Project Information module for Play2!
• https://github.com/karad/play2-project-info
デモ
9
10. Plugins.sbtに書く
resolvers
+=
"Greative
Maven
Repository"
at
"https://
github.com/karad/maven-‐repo/raw/master/release/"
addSbtPlugin("jp.greative"
%
"play2-‐project-‐info-‐sbt"
%
"0.1")
10
12. Playプラグインは、
➡ Play上の機能追加、依存管理する仕組み
• アプリケーションの機能拡張
• ライブラリの追加
• 対話型コンソールの機能拡張
➡ Playのプラグイン自体は、コンパイル済みのjar
• これをsbtを使って依存管理する
• ただし、Playコンソール系は別
12
13. 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
14. Playとsbtの関係
➡ Play 2.0以降、sbtが全面採用
• Playコマンド用
• ライブラリ、プラグインの依存管理用
• ビルド用
14
15. Playにおけるプラグインの種類
➡ アプリケーション
• Model
• Controller
• View
- Tag
➡ クラスライブラリ
• jar
➡ コンソール
• sbtのコンソール
- sbtプラグインとして作成
15
16. Playプラグインは何で書くの?
➡ クラスライブラリとしてのプラグイン
• Java/Scala両方
➡ アプリケーションのプラグイン
• プロジェクトによる
➡ コンソール型のプラグイン
• Scala
16
18. 参考になるもの
➡ play-plugins
• https://github.com/typesafehub/play-plugins
- dustプラグインとか参考になる
➡ play本体
• project
- Build.scala
• framework
- src
console
sbt-plugin
18
19. フォルダ構成
➡ conf/
• application.conf
➡ project/
• build.properties
• Build.scala
• plugins.sbt
➡ sbt-plugin/
• src/
- main/
scala/
➡ README.md
19
20. 使うファイル
➡ プラグイン本体のソース
• HogeKeys.scala
• HogePlugin.scala
• HogeTasks.scala
➡ ビルド用ファイル
• Build.scala
デモ
20
21. リポジトリってどうなってるの?
➡ Gitをmavenリポジトリとしているプラグインが多い
• ライブラリのリポジトリと、mavenリポジトリで分ける
• メリット
- URLが出来る
- マニュアル置ける
- アップロード楽
- 無料
デモ
21