Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Gradle入門

2015/11/20 Javaツール勉強会@福岡の発表資料

  • Soyez le premier à commenter

Gradle入門

  1. 1. Gradle入門 2015/11/20 Javaツール勉強会@福岡 李充根
  2. 2. 自己紹介 • 名前:李充根(リ・チュングン) • HN:りぐん(ligun) • Twitter:@choonggeun • FB:choonggeun • GitHub:ligun • 使用言語:Java、C#、Groovy • PO(Precure Ojisan)、PDDエンジニア – groovycure • https://github.com/ligun/groovycure/ – http://momozono.love • 最近OSSにプルリク送ったりQiitaに投稿したりしています 2015/11/20 Javaツール勉強会@福岡 2
  3. 3. はじめに • Ant、Maven使ったことありません – はじめて触ったビルドツールがGradleってだけなので 詳細な比較や使用感の違いとかは説明できません – Gradle触り始めたきっかけはビルドツールが必要に なった時一番新しそうなのがGradleだったってのと、も ともとGroovy使いだったから 2015/11/20 Javaツール勉強会@福岡 3
  4. 4. Gradleとは? • 比較的後発なJava、JVM言語用ビルドツール – Java以外にもGroovy、ScalaなどのJVM言語、試験的 なプラグインだがC/C++なども扱うことができる • Gradle自体はGroovyで作られたDSL – そのためJavaと似た文法で独自タスクを定義できる • 現在2.9まで正式版が出ている – もうすぐ3.0にバージョンアップ • 少し記述が変わるかも • Android Studioで標準対応してから一般的になった? 2015/11/20 Javaツール勉強会@福岡 4
  5. 5. 他のビルドツールとの違い • XMLではなく独自DSL – 設定ではなく処理 – 見やすい(人による?) – 拡張性が高い • DSLとしての書き方を覚えなければならない • 依存関係の管理は内部的にApache Ivyを使用している • Gradle Wrapperを使用するとGradleをインストールして いないPCでもビルドできる – CIツールに導入する時に楽 • Ant、Mavenとできる事自体大きく違わないけど楽できる 2015/11/20 Javaツール勉強会@福岡 5
  6. 6. 導入方法 • 各OS – GradleのページからZIPで落とす • Unix、Linux、Cygwin – SDKMANを導入する(こっちがおすすめ) • SDKMANとは? – 元々GVMと名乗っててGroovy系ツールをバージョン管理で きる、Rubyで言うRVMやrbenvのようなもの – 最近名前が変わって(Go用のアレと名前かぶってたせい)、 Groovy以外にもJVMの各ツールが導入できるようになった • Scala、Ceylon、Maven、Spring Boot、etc… 2015/11/20 Javaツール勉強会@福岡 6
  7. 7. SDKMANを使った導入 • SDKMANインストール $ curl -s get.sdkman.io | bash • 端末再起動 • Gradleインストール $ sdk install gradle • 確認 $ gradle --version • その他SDKMANの使い方などは下記参考 – http://sdkman.io 2015/11/20 Javaツール勉強会@福岡 7
  8. 8. Gradle事始め • Gradleプロジェクトを作ってみる – プロジェクト名:gradlesample1 • ディレクトリ作成 $ mkdir gradlesample1 • Gradleプロジェクト作成 $ cd gradlesample1 $ gradle init • 下記のようなディレクトリ構成になる gradlesample1 ├── build.gradle ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle Gradle Wrapper本体 Gradleスクリプト マルチプロジェクト用 設定ファイル Gradle Wrapper用シェルファイル 2015/11/20 Javaツール勉強会@福岡 8
  9. 9. Gradleでビルド • 最低限必要なのは – build.gradle • ここにタスクなどを書く – Javaプロジェクトの場合下記のように書けば良い apply plugin: ‘java‘ repositories { jcenter() } dependencies { compile 'org.slf4j:slf4j-api:1.7.7' testCompile ‘junit:junit:4.11’ } 2015/11/20 Javaツール勉強会@福岡 9
  10. 10. スクリプト説明 • apply plugin – 必要なGradleプラグインを適用する • 今回はJavaプロジェクトなのでJava • その他例えばIntelliJで使いたいときはideaプラグインも適用すると便利 • repositories – 使用するMavenリポジトリ • jcenterを選択して問題ない(mavenCentralも書くことできるけど基本的に jcenterにあるので意味ないかも) • サードパーティなリポジトリもURL定義すれば使えます • dependencies – ビルド時やテスト時に必要なライブラリを定義します • ロガーとしてSLF4J、テスト時にJUnit4を使えるようにしています – compile → プロダクトコードビルド時に必要なライブラリ(slf4jやlogback等) – testCompile → テストで必要なライブラリ(テスティングフレームワーク等) – その他プラグインによって他の定義もある 2015/11/20 Javaツール勉強会@福岡 10
  11. 11. ソースコードの階層 • ソースディレクトリはGradleプロジェクトディレクトリ以下 に次のような階層にすると自動的に読み込まれる src ├── main │ └── java │ └── packagename └── test └── java └── packagename • Mainにプロダクトコード、testにテストコードを記述する 2015/11/20 Javaツール勉強会@福岡 11
  12. 12. ビルドの実行 • build.gradleのあるディレクトリで下記コマンドを入力 $ gradle build 各プロセスが走り、正常にビルドされると「BUILD SUCCESSFUL」と表示される • テストを実行したい場合は $ gradle test と入力する 2015/11/20 Javaツール勉強会@福岡 12
  13. 13. Lazybonesを使った新規作成時の 時間節約 • Gradleでプロジェクトを作る度にソースディレクトリの階層 を作ったり、初期スクリプトを書くのは面倒ですよね • IDEを使うと低減されることもありますが、社内だけで定 型化されているようなものまでは自動化できませんよね • Lazybonesというツールを使えばこれが可能になります • 簡単に言うと予め用意されたGradle用のテンプレートを呼 び出すだけで使えるようにするツールです 2015/11/20 Javaツール勉強会@福岡 13
  14. 14. Lazybonesの導入 • SDKMANを使ってインストールできる $ sdk install lazybones • Lazybonesを使ってGradleプロジェクトを作成 $ lazybones create java-basic projectname • projectnameディレクトリができていて下記のような階層になっている projectname ├── build.gradle ├── gradle.properties ├── README.md └── src ├── main │ └── java └── test └── java 2015/11/20 Javaツール勉強会@福岡 14
  15. 15. Lazybonesの使い方 • build.gradleには最低限の記述が書かれている • java-basic以外のテンプレートは「lazybones list」を実行 するとみることができる • その他標準テンプレート以外にもLazybonesの設定に自分 のリポジトリを追加することでオリジナルなテンプレートを 作成することもできる – 例えば毎回使うツールが決まっていて JUnit+SLF4J+Logbackを使うといった場合、更にパッ ケージ名は会社のドメインとかだと、それが設定され ているテンプレートを作るととても便利になる 2015/11/20 Javaツール勉強会@福岡 15
  16. 16. Gradleでスクリプトを実行する • Gradleではタスクを自由に定義できる – 例えばbuild.gradleに次のように記述する task hello << { println “hello world” } – gradle helloを実行すると「hello world」が出力される …… • これだけだと何が嬉しいかいまいちわからない 2015/11/20 Javaツール勉強会@福岡 16
  17. 17. Gradleタスクのための例題 • まずは前提 – Javaで実行可能なJarを起動するときこう書きますよね java –jar hoge.jar – 実はこの時Jarファイルの先頭にゴミデータが有っても javaコマンドはよしなに扱ってくれます – そのため次のようなシェルスクリプトを先頭に書いて Jarを結合するとあたかも通常のコマンドのように扱え ます #!/bin/sh java –jar "$0" "$@“ exit $? 2015/11/20 Javaツール勉強会@福岡 17
  18. 18. Gradleタスクのための例題 • このようなファイルを作るにはシェルスクリプトを書けば簡単で す(先ほどのシェルスクリプトをbootstrap.shとして) $ cat bootstrap.sh hoge.jar > hoge • このようにしてhogeファイルを/usr/local/binあたりにでも突っ 込めばコマンド実行できます • これをGradleタスクとして定義し、Gradleコマンドから作成で きるようにするとビルド時に一緒に吐き出せて便利ですよね – Gradleだと環境に依存しない – ちなみに一つにまとめるのではなくJarとキッカースクリプト の形でなら標準のapplicationプラグインを使えば「gradle installDist」コマンドで作成できます 2015/11/20 Javaツール勉強会@福岡 18
  19. 19. 時間が余ったら説明 • スクリプト – https://gist.github.com/ligun/1294b32ddf6fbdabfce3 • task jarsh – 今回定義するタスク • 通常のJarではなく依存ライブラリも含めたものを作成 • Jarの名前は「projectname-fullpack.jar」 – 処理内容は以下のとおり • フルパックJarを作成 • jarshディレクトリを作成 • jarshディレクトリにbootstrapとJarを固めたものをUnix用と Linux用両方を作成 2015/11/20 Javaツール勉強会@福岡 19
  20. 20. おわりに • 色々と駆け足で説明しましたがやってみたら簡単です – ビルドツールあまり使ったことなかった自分でも自力で ある程度扱えるようになりました • 一度Antやろうと思ったことありましたが、その時は理解でき ずに諦めた記憶が…… • Javaっぽい(比較的)見慣れたDSLで定義できます – Groovyを覚えていたらより便利になりますがJava文法 で書いても実行できるので最初はJavaで処理しても問 題ありません • 次回もSpockとかGroovy製の便利なフレームワークを紹介 できたらいいな 2015/11/20 Javaツール勉強会@福岡 20
  21. 21. ご清聴ありがとうございました 2015/11/20 Javaツール勉強会@福岡 21

    Soyez le premier à commenter

    Identifiez-vous pour voir les commentaires

  • yutanatsume5

    Nov. 21, 2015
  • stoicmax

    Nov. 22, 2015
  • kyamane13

    Nov. 22, 2015
  • koheiakane

    Nov. 29, 2015
  • orangeclover

    Dec. 7, 2015
  • tomohikosato758

    Feb. 22, 2016
  • kenmasumitsu

    Aug. 18, 2016
  • flicker001

    Apr. 10, 2017

2015/11/20 Javaツール勉強会@福岡の発表資料

Vues

Nombre de vues

4 037

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

256

Actions

Téléchargements

16

Partages

0

Commentaires

0

Mentions J'aime

8

×