================================================ Gradle ================================================ .. contents:: 目次 :depth: 2 mikeさんの資料 ================================================ https://github.com/mike-neck/javajo-gradle 初期化 ================================================ .. code-block :: sh $ gradle init --type java-library java-libralyの他にも、下記オプションを選択できる。 - basic - groovy-library - pom - scala-library 詳細な説明は、http://www.gradle.org/docs/current/userguide/build_init_plugin.html 変数の定義 ================================================ 文字列の書き方 ------------------------------------------------ Stringはシングルクォートで囲む。GStringはダブルクォートでくくる。GStringでは式を展開して文字列として埋め込むことが出来る。 .. code-block :: sh println "jdk -> ${jdk}" 変数の定義 ------------------------------------------------ Gradleのpropertiesに変数を追加するときは、extraプロパティを使う。 .. code-block :: groovy ext { jdk = '1.8' encoding = 'UTF-8' } ラッパー ================================================ | ラッパーを使用してGradleを内包して配布することで、使用者がGradleをインストールしていなくても | すぐにPJを開始することが出来る。 | また、Gradleの使用バージョンを統一させることが出来る。 .. code-block:: groovy task wrapper(type: Wrapper) { gradleVersion = '2.0' } 依存関係の管理 ================================================ * compile ... プロダクションクラスのコンパイル時に依存するライブラリー * runtime ... 実行時に依存するライブラリー(コンパイルには用いられない) * testCompile ... テストクラスのコンパイル時に依存するライブラリー * testRuntime ... テスト実行時に依存するライブラリー テストの実行 ================================================ 並行でテストを実行する ------------------------------------------------ 並列でテストを実行する。 .. code-block :: groovy test { maxParallelForks = 5 } テストをフィルタリングする ------------------------------------------------ Gradleでは、testクラスを全て実行してしまう。そのため、テストクラスに内部クラスが存在した場合、テストが2重起動してしまう。 (かつ、テストレポートにも同じケースが2つ表示される。) なので、内部クラスをテスト対象から除外するように設定を追加してあげる。 .. code-block :: groovy test { /* 任意のディレクトリーにある Test$ という名称を含むクラスファイルを除外する */ exclude '**/*Test$*' } .. tip:: 命名規約としてxxxxTestという書き方にしておくと、上記のようにフィルタリングすることができた。 タスクの実行 ================================================ タスク名をキャメルケースにしておくと、コマンド実行のときに省略系を使うことが出来る。 .. code-block :: groovy task copyJavaImage(type: Copy) { from file('../images/java.jpg') into "${buildDir}/java-image" } .. code-block :: sh gradle cJI