Gradle - ビルドツール †
Gradle とは †Gradle はAndroid Atudio のビルドツールとして採用されるなど、次世代のビルドツールとして注目されている。 インストール方法 †(1) 公式サイトのDOWNLOADS からGradleをダウンロード (2) ダウンロードしたzipを解凍し、環境変数 GRADLE_HOME に解凍したディレクトリのPATHを設定する (3) GRADLE_HOME/bin にPATHを通す Gradleプロジェクトの作成 †gradle init --type java-library type には pom、java-application、java-library、scala-library、groovy-library、groovy-application、basic などが指定できる。 Gradleが期待する基本的なディレクトリ構成 †規約に従ったディレクトリ構成の場合は、ビルドスクリプトの大幅な記述量削減が可能となる。 プロジェクトルート タスク †"gradle" に続けてタスク名を入力する事で、該当のタスクを実行する事ができる gradle init --type java-library 以下、主なタスクの一覧(他、詳細は後述)
基本形 †apply plugin: 'java' // In this section you declare where to find the dependencies of your project repositories { jcenter() } jar { manifest { // net.magata.example.TestMain をメインクラスとする場合 attributes 'Main-Class': 'net.magata.example.TestMain' } } dependencies { compile 'グループID:アーティファクトID:バージョン' // Use JUnit test framework testImplementation 'junit:junit:X.XX' } タスクの作成 †簡単なタスクを作成し、実行してみる 新規タスクの作成 †適当なディレクトリを作成し、配下に以下のファイルを作成する。(ファイル名:build.gradle) task hello { doLast { println "hello!" } } ショートカット記法を使用する場合 task hello << { println "hello!" } タスクの実行方法 †./gradlew hello 結果: :hello hello! BUILD SUCCESSFUL Total time: 2.415 secs タスクに依存関係を追加する †task myTask1 { doLast { println "This is myTask1" } } task myTask2(dependsOn: myTask1) { doLast { println "This is myTask2" } } 実行 ./gradlew myTask2 > Task :myTask1 This is myTask1 > Task :myTask2 This is myTask2 BUILD SUCCESSFUL in 0s タスクに後処理を追加する †task myTask1 { doLast { println "This is myTask1" } } myTask1.doLast { print "After myTask1" } 実行 ./gradlew myTask1 > Task :myTask1 This is myTask1 After myTask1 BUILD SUCCESSFUL in 0s Tips †プラグインの追加 †build.gradle apply plugin: 'java' apply plugin: 'application' または plugins { id 'java' id 'application' } デフォルトタスクの設定 †build.gradle defaultTasks 'タスク名1' 'タスク名2' コマンドライン引数をメインクラスに渡す †run { if (project.hasProperty('args')) { args project.args.split('\\s+') } } 実行例 ./gradlew run -Pargs="arg1 arg2" JVMパラメータを指定する †build.gradle applicationDefaultJvmArgs = ["-Xms1024m", "-Xmx1024m"] ※http://gradle.monochromeroad.com/docs/userguide/application_plugin.html 関連: JavaVMのチューニングメモ メインクラスを指定する †./gradlew run 時に実行するメインクラスを指定する mainClassName = "org.gradle.sample.Main" Javaのバージョンを指定する †apply plugin: 'java' sourceCompatibility = '1.8' targetCompatibility = '1.8' ソースの文字コードを指定する †compileJava.options.encoding = 'UTF-8' compileTestJava.options.encoding = 'UTF-8' コマンドライン引数で指定されたクラスを実行する †run { // 引数で指定されたクラスを実行する if (project.hasProperty('main')) { main(project.main) } } 実行例 ./gradlew run -Pmain="TestApp1" ※TestApp1.java の main メソッドが実行される。 test 実行時に標準出力への出力内容を表示する †test { testLogging.showStandardStreams = true } |