libro
www.tuyano.com
初心者のためのGradle入門

DefaultTaskクラスの利用 (3/5)

作成:2017-10-21 10:00
更新:2017-10-21 10:00

■JavaExecクラスを利用する

DefaultTask継承クラスを使ったタスク作成の基本がわかったところで、Gradleに用意されている主なDefaultTask継承クラスについて、使い方を見てみることにしましょう。

まずは、「JavaExec」クラスです。JavaEexecは、Javaプログラムの実行を行うためのタスクを実装するクラスです。このクラスでは、実行に必要な各種のメソッドが用意されています。主なものを整理しておきましょう。

main 《クラス》
実行するクラスを指定するためのメソッドです。クラス名をテキストとして引数に指定して呼び出します。

classpath 《テキスト》
こちらは、実行時にclasspathとして指定するテキストを設定します。デフォルトのclasspathのままでいいならば、sourceSets.main.runtimeClasspath という値を指定しておきます。

args 《Iterator》
args 《値1, 値2, ……》
引数として渡す情報を指定するものです。これはIteratorとしてまとめて用意することもできますし、不定引数として必要な値を個別に引数に指定することもできます。

jvmArgs 《Iterator》
jvmArgs 《値1, 値2, ……》
こちらは、Java仮想マシンへ渡す引数を指定するものです。これもやはりIteratorとか変引数が用意されています。

workingDir 《テキスト》
ワーキングディレクトリを指定するためのものです。引数には、設定したいディレクトリのパスを指定します。これは、プロジェクトのフォルダからの相対パスで指定します。


では、このJavaExecを利用したタスクの例を挙げておきましょう(下のリスト欄を参照)。ここでは、Appクラスを実行するappRunタスクを作成しました。「gradle appRun」と実行すると、コンソールに以下のように出力がされます。
---------- Start ----------

Hello world.

----------- end -----------

Gradleでの実行は、色々出力があって実行結果がわかりにくいので、doFirstdoLastでテキストを出力し、一目で「これが実行内容だ」とわかるようにしてみました。ここでは、以下のようにExecJavaの設定を行なっています。
main 'App'
classpath sourceSets.main.runtimeClasspath

とりあえず、mainclasspathだけは用意して下さい。この2つはデフォルトで値が設定されておらず、省略できません。その他のものはデフォルトのままで問題ないでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

task appRun(type: JavaExec) {
    group 'libro'
    description 'exec App class.'
    main 'App'
    classpath sourceSets.main.runtimeClasspath
    
    doFirst {
        println()
        println('---------- Start ----------')
        println()
    }
    doLast {
        println()
        println('----------- end -----------')
        println()
    }
}
※関連コンテンツ

「初心者のためのGradle入門」に戻る