gradle 使用メモ
Gradleラッパー
build.gradle に以下の設定を記述する。(タスク名wrapperは任意の名前でよい)
task wrapper(type: Wrapper) {
gradleVersion = '1.6'
}
以下のコマンドを実行
gradle wrapper
下記ファイルが追加される。
project ├─gradle │ └─wrapper │ ├─gradle-wrapper.jar │ └─gradle-wrapper.properties ├─gradlew └─gradlew.bat
gradlewコマンドはタスク設定で指定したバージョンのgradleをダウンロードして実行するスクリプトとなっており、ビルドツリーに登録しておくことで、実行環境にインストールされているgradleのバージョンに関係なく、指定したバージョンのgradleを使用することができる。
マルチプロジェクト
settings.gradle に以下の設定を記述する。(https://github.com/gradle/gradle を参考にした)
// includeでサブプロジェクトを指定する。 include 'appMain' include 'appData' // サブプロジェクトのディレクトリ名とビルド設定ファイル名をカスタマイズする。 // デフォルト構成で使用するのであれば不要な処理だが、サブプロジェクトの // ディレクトリが多い場合はディレクトリを分けておいた方が見やすい。 rootProject.children.each {project -> String fileBaseName = project.name.replaceAll("\\p{Upper}") { "-${it.toLowerCase()}" } String projectDirName = "subprojects/$fileBaseName" project.projectDir = new File(settingsDir, projectDirName) project.buildFileName = "${fileBaseName}.gradle" assert project.projectDir.isDirectory() assert project.buildFile.isFile() }
build.gradle を以下の通り設定する。(scalaを使用する)
//引数なしでgradlewを実行した場合にデフォルトで実行するタスクを設定 defaultTasks 'build' //distZipタスクで配布ファイルを作成するための設定 apply plugin: 'application' mainClassName = "com.github.tkmtmkt.Main" //全プロジェクト共通の設定 allprojects { group = 'com.github.tkmtmkt' version = '1.0-SNAPSHOT' repositories { mavenCentral() flatDir { dirs "$rootDir/lib" } } } //サブプロジェクト共通の設定 //※このファイルではルートプロジェクトに対する設定を行っている subprojects { apply plugin: 'scala' //依存ライブラリの指定 dependencies { compile 'org.scala-lang:scala-library:2.10.2' compile 'org.slf4j:slf4j-log4j12:1.7.5' compile name: 'coherence' testCompile 'junit:junit:4.+' testCompile 'org.specs2:specs2_2.10:2.1' testCompile 'org.mockito:mockito-core:1.9.5' } //jarファイルのマニフェストファイルに記述する内容を指定 jar { manifest { attributes("Implementation-Title": project.name, "Implementation-Version": version) } } } //ルートプロジェクトの依存ライブラリ指定 //ルートプロジェクトではサブプロジェクトをまとめて //配布パッケージを作成するために使用する。 dependencies { runtime project(':appMain') runtime project(':appData') } //gradleラッパー作成用の設定 task wrapper(type: Wrapper) { description = 'Generates Gradle wrapper scripts.' gradleVersion = '1.6' }
ビルド環境
gradle.properties でビルド環境を設定する。
# デーモン有効化 org.gradle.daemon=true # プロキシ設定 systemProp.http.proxyHost=www.somehost.org systemProp.http.proxyPort=8080
Gradleデーモンを有効にしておくと、jvmが常駐されてコマンド実行が早くなる。
第19章 Gradleデーモン
デーモンプロセスを停止する。
gradlew --stop
デーモンを起動せずにコマンドを実行する。(CIで実行する場合など)
gradlew -D org.gradle.daemon=false
最後に
メモ書きのためbuild.gradleのコメント日本語で書いたが、実環境でbuild.gradleに日本語のコメント記入するとビルドできない。気が向いたら調べる。