Enviar pesquisa
Carregar
Gradle入門
•
Transferir como PPTX, PDF
•
8 gostaram
•
4,356 visualizações
Lee Choong Geun
Seguir
2015/11/20 Javaツール勉強会@福岡の発表資料
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 21
Baixar agora
Recomendados
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
Takuya Ueda
属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。
属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。
Jun Suzuki
Google Gadgetsを看取る
Google Gadgetsを看取る
Takashi SASAKI
Git for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
Emma Haruka Iwao
難しいよね、コードレビュー
難しいよね、コードレビュー
Shinichi Takahashi
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
料理を楽しくする画像配信システム
料理を楽しくする画像配信システム
Issei Naruta
Recomendados
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
Takuya Ueda
属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。
属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。
Jun Suzuki
Google Gadgetsを看取る
Google Gadgetsを看取る
Takashi SASAKI
Git for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
Emma Haruka Iwao
難しいよね、コードレビュー
難しいよね、コードレビュー
Shinichi Takahashi
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
料理を楽しくする画像配信システム
料理を楽しくする画像配信システム
Issei Naruta
Gradle入門
Gradle入門
orekyuu
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Shinobu Okano
「ソフトを他人に作らせる日本、自分で作る米国」を読んで
「ソフトを他人に作らせる日本、自分で作る米国」を読んで
Makoto SAKAI
Empirical Project Monitorの紹介
Empirical Project Monitorの紹介
Makoto SAKAI
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
Epm x紹介 20140215
Epm x紹介 20140215
Yutaka Ohwada
はじめてのSpring Boot
はじめてのSpring Boot
なべ
明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
Goodbye progress dialog mess on Android
Goodbye progress dialog mess on Android
Tsuyoshi Yoshioka
Gradle - time for another build
Gradle - time for another build
Igor Khotin
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
かんたんHeroku入門 - Heroku へのデプロイと運用 -
かんたんHeroku入門 - Heroku へのデプロイと運用 -
sakagami3
Closures and methodMissing are real
Closures and methodMissing are real
Takahiro Sugiura
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
失敗しにくいサービスのつくり方 20151006
失敗しにくいサービスのつくり方 20151006
Daisaku Yamamoto
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
Goはじめました
Goはじめました
Masanori Masui
Ninja framework使ってみた
Ninja framework使ってみた
eiryu
Start PWA from vuejs+github pages
Start PWA from vuejs+github pages
Hirata Tomoko
Mais conteúdo relacionado
Destaque
Gradle入門
Gradle入門
orekyuu
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Shinobu Okano
「ソフトを他人に作らせる日本、自分で作る米国」を読んで
「ソフトを他人に作らせる日本、自分で作る米国」を読んで
Makoto SAKAI
Empirical Project Monitorの紹介
Empirical Project Monitorの紹介
Makoto SAKAI
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
Epm x紹介 20140215
Epm x紹介 20140215
Yutaka Ohwada
はじめてのSpring Boot
はじめてのSpring Boot
なべ
明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
Goodbye progress dialog mess on Android
Goodbye progress dialog mess on Android
Tsuyoshi Yoshioka
Gradle - time for another build
Gradle - time for another build
Igor Khotin
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
かんたんHeroku入門 - Heroku へのデプロイと運用 -
かんたんHeroku入門 - Heroku へのデプロイと運用 -
sakagami3
Closures and methodMissing are real
Closures and methodMissing are real
Takahiro Sugiura
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
失敗しにくいサービスのつくり方 20151006
失敗しにくいサービスのつくり方 20151006
Daisaku Yamamoto
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
Destaque
(18)
Gradle入門
Gradle入門
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
「ソフトを他人に作らせる日本、自分で作る米国」を読んで
「ソフトを他人に作らせる日本、自分で作る米国」を読んで
Empirical Project Monitorの紹介
Empirical Project Monitorの紹介
Gradle布教活動
Gradle布教活動
Epm x紹介 20140215
Epm x紹介 20140215
はじめてのSpring Boot
はじめてのSpring Boot
明日から使えるgradle
明日から使えるgradle
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
Goodbye progress dialog mess on Android
Goodbye progress dialog mess on Android
Gradle - time for another build
Gradle - time for another build
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
かんたんHeroku入門 - Heroku へのデプロイと運用 -
かんたんHeroku入門 - Heroku へのデプロイと運用 -
Closures and methodMissing are real
Closures and methodMissing are real
Spring bootでweb 基本編
Spring bootでweb 基本編
失敗しにくいサービスのつくり方 20151006
失敗しにくいサービスのつくり方 20151006
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Semelhante a Gradle入門
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
Goはじめました
Goはじめました
Masanori Masui
Ninja framework使ってみた
Ninja framework使ってみた
eiryu
Start PWA from vuejs+github pages
Start PWA from vuejs+github pages
Hirata Tomoko
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
Masahiro Satake
Studentgo1
Studentgo1
Koki Natsume
GDDでPlayNを見てゾクっとしたなど
GDDでPlayNを見てゾクっとしたなど
Takao Sumitomo
ちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオン
Satoshi Noda
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
The History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
Git & GitHub セミナー.pptx
Git & GitHub セミナー.pptx
ulxsth
Androidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradle
amayaw9
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Takuya Ueda
Github講座#1
Github講座#1
Masaki Kobayashi
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
orange clover
Azureでのプレゼン
Azureでのプレゼン
Fukuda Takuro
勉強会を始めるまで #java_ja
勉強会を始めるまで #java_ja
Go Sueyoshi (a.k.a sue445)
Groovy base
Groovy base
Akura Pi
MF GeeksNight pplogの話
MF GeeksNight pplogの話
Naoto Koshikawa
今年作ったもの2013 #hokkaidopm
今年作ったもの2013 #hokkaidopm
鉄次 尾形
Semelhante a Gradle入門
(20)
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Goはじめました
Goはじめました
Ninja framework使ってみた
Ninja framework使ってみた
Start PWA from vuejs+github pages
Start PWA from vuejs+github pages
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
Studentgo1
Studentgo1
GDDでPlayNを見てゾクっとしたなど
GDDでPlayNを見てゾクっとしたなど
ちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオン
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
The History of Groovy #GroovyBase
The History of Groovy #GroovyBase
Git & GitHub セミナー.pptx
Git & GitHub セミナー.pptx
Androidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradle
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Github講座#1
Github講座#1
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
Azureでのプレゼン
Azureでのプレゼン
勉強会を始めるまで #java_ja
勉強会を始めるまで #java_ja
Groovy base
Groovy base
MF GeeksNight pplogの話
MF GeeksNight pplogの話
今年作ったもの2013 #hokkaidopm
今年作ったもの2013 #hokkaidopm
Mais de Lee Choong Geun
ヤマハルータで始める自宅LANのすゝめ
ヤマハルータで始める自宅LANのすゝめ
Lee Choong Geun
TeslaCryptを焼き肉に変えた話
TeslaCryptを焼き肉に変えた話
Lee Choong Geun
もっと気軽に勉強会を
もっと気軽に勉強会を
Lee Choong Geun
簡単!Groovy入門
簡単!Groovy入門
Lee Choong Geun
PBLのためのはじめてのGit
PBLのためのはじめてのGit
Lee Choong Geun
Effective Java輪読会 vol0
Effective Java輪読会 vol0
Lee Choong Geun
出、出~!勉強会参加技術向上思奴wwww
出、出~!勉強会参加技術向上思奴wwww
Lee Choong Geun
LINQ雑談
LINQ雑談
Lee Choong Geun
xamarin for android試してみた
xamarin for android試してみた
Lee Choong Geun
西区プログラム勉強会説明資料OSC発表版
西区プログラム勉強会説明資料OSC発表版
Lee Choong Geun
ハードウェアで遊ぼうよ
ハードウェアで遊ぼうよ
Lee Choong Geun
西区プログラム勉強会(仮)Ver2
西区プログラム勉強会(仮)Ver2
Lee Choong Geun
Mais de Lee Choong Geun
(12)
ヤマハルータで始める自宅LANのすゝめ
ヤマハルータで始める自宅LANのすゝめ
TeslaCryptを焼き肉に変えた話
TeslaCryptを焼き肉に変えた話
もっと気軽に勉強会を
もっと気軽に勉強会を
簡単!Groovy入門
簡単!Groovy入門
PBLのためのはじめてのGit
PBLのためのはじめてのGit
Effective Java輪読会 vol0
Effective Java輪読会 vol0
出、出~!勉強会参加技術向上思奴wwww
出、出~!勉強会参加技術向上思奴wwww
LINQ雑談
LINQ雑談
xamarin for android試してみた
xamarin for android試してみた
西区プログラム勉強会説明資料OSC発表版
西区プログラム勉強会説明資料OSC発表版
ハードウェアで遊ぼうよ
ハードウェアで遊ぼうよ
西区プログラム勉強会(仮)Ver2
西区プログラム勉強会(仮)Ver2
Gradle入門
1.
Gradle入門 2015/11/20 Javaツール勉強会@福岡 李充根
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.
はじめに • Ant、Maven使ったことありません – はじめて触ったビルドツールがGradleってだけなので 詳細な比較や使用感の違いとかは説明できません –
Gradle触り始めたきっかけはビルドツールが必要に なった時一番新しそうなのがGradleだったってのと、も ともとGroovy使いだったから 2015/11/20 Javaツール勉強会@福岡 3
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.
他のビルドツールとの違い • XMLではなく独自DSL – 設定ではなく処理 –
見やすい(人による?) – 拡張性が高い • DSLとしての書き方を覚えなければならない • 依存関係の管理は内部的にApache Ivyを使用している • Gradle Wrapperを使用するとGradleをインストールして いないPCでもビルドできる – CIツールに導入する時に楽 • Ant、Mavenとできる事自体大きく違わないけど楽できる 2015/11/20 Javaツール勉強会@福岡 5
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.
SDKMANを使った導入 • SDKMANインストール $ curl
-s get.sdkman.io | bash • 端末再起動 • Gradleインストール $ sdk install gradle • 確認 $ gradle --version • その他SDKMANの使い方などは下記参考 – http://sdkman.io 2015/11/20 Javaツール勉強会@福岡 7
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.
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.
スクリプト説明 • 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.
ソースコードの階層 • ソースディレクトリはGradleプロジェクトディレクトリ以下 に次のような階層にすると自動的に読み込まれる src ├── main │
└── java │ └── packagename └── test └── java └── packagename • Mainにプロダクトコード、testにテストコードを記述する 2015/11/20 Javaツール勉強会@福岡 11
12.
ビルドの実行 • build.gradleのあるディレクトリで下記コマンドを入力 $ gradle
build 各プロセスが走り、正常にビルドされると「BUILD SUCCESSFUL」と表示される • テストを実行したい場合は $ gradle test と入力する 2015/11/20 Javaツール勉強会@福岡 12
13.
Lazybonesを使った新規作成時の 時間節約 • Gradleでプロジェクトを作る度にソースディレクトリの階層 を作ったり、初期スクリプトを書くのは面倒ですよね • IDEを使うと低減されることもありますが、社内だけで定 型化されているようなものまでは自動化できませんよね •
Lazybonesというツールを使えばこれが可能になります • 簡単に言うと予め用意されたGradle用のテンプレートを呼 び出すだけで使えるようにするツールです 2015/11/20 Javaツール勉強会@福岡 13
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.
Lazybonesの使い方 • build.gradleには最低限の記述が書かれている • java-basic以外のテンプレートは「lazybones
list」を実行 するとみることができる • その他標準テンプレート以外にもLazybonesの設定に自分 のリポジトリを追加することでオリジナルなテンプレートを 作成することもできる – 例えば毎回使うツールが決まっていて JUnit+SLF4J+Logbackを使うといった場合、更にパッ ケージ名は会社のドメインとかだと、それが設定され ているテンプレートを作るととても便利になる 2015/11/20 Javaツール勉強会@福岡 15
16.
Gradleでスクリプトを実行する • Gradleではタスクを自由に定義できる – 例えばbuild.gradleに次のように記述する task
hello << { println “hello world” } – gradle helloを実行すると「hello world」が出力される …… • これだけだと何が嬉しいかいまいちわからない 2015/11/20 Javaツール勉強会@福岡 16
17.
Gradleタスクのための例題 • まずは前提 – Javaで実行可能なJarを起動するときこう書きますよね java
–jar hoge.jar – 実はこの時Jarファイルの先頭にゴミデータが有っても javaコマンドはよしなに扱ってくれます – そのため次のようなシェルスクリプトを先頭に書いて Jarを結合するとあたかも通常のコマンドのように扱え ます #!/bin/sh java –jar "$0" "$@“ exit $? 2015/11/20 Javaツール勉強会@福岡 17
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.
時間が余ったら説明 • スクリプト – 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.
おわりに • 色々と駆け足で説明しましたがやってみたら簡単です – ビルドツールあまり使ったことなかった自分でも自力で ある程度扱えるようになりました •
一度Antやろうと思ったことありましたが、その時は理解でき ずに諦めた記憶が…… • Javaっぽい(比較的)見慣れたDSLで定義できます – Groovyを覚えていたらより便利になりますがJava文法 で書いても実行できるので最初はJavaで処理しても問 題ありません • 次回もSpockとかGroovy製の便利なフレームワークを紹介 できたらいいな 2015/11/20 Javaツール勉強会@福岡 20
21.
ご清聴ありがとうございました 2015/11/20 Javaツール勉強会@福岡 21
Baixar agora