DefaultTaskクラスの利用 (3/5)
作成:2017-10-21 10:00
更新:2017-10-21 10:00
更新:2017-10-21 10:00
■JavaExecクラスを利用する
DefaultTask継承クラスを使ったタスク作成の基本がわかったところで、Gradleに用意されている主なDefaultTask継承クラスについて、使い方を見てみることにしましょう。
まずは、「JavaExec」クラスです。JavaEexecは、Javaプログラムの実行を行うためのタスクを実装するクラスです。このクラスでは、実行に必要な各種のメソッドが用意されています。主なものを整理しておきましょう。
では、このJavaExecを利用したタスクの例を挙げておきましょう(下のリスト欄を参照)。ここでは、Appクラスを実行するappRunタスクを作成しました。「gradle appRun」と実行すると、コンソールに以下のように出力がされます。
Gradleでの実行は、色々出力があって実行結果がわかりにくいので、doFirstとdoLastでテキストを出力し、一目で「これが実行内容だ」とわかるようにしてみました。ここでは、以下のようにExecJavaの設定を行なっています。
とりあえず、mainとclasspathだけは用意して下さい。この2つはデフォルトで値が設定されておらず、省略できません。その他のものはデフォルトのままで問題ないでしょう。
まずは、「JavaExec」クラスです。JavaEexecは、Javaプログラムの実行を行うためのタスクを実装するクラスです。このクラスでは、実行に必要な各種のメソッドが用意されています。主なものを整理しておきましょう。
main 《クラス》実行するクラスを指定するためのメソッドです。クラス名をテキストとして引数に指定して呼び出します。
classpath 《テキスト》こちらは、実行時にclasspathとして指定するテキストを設定します。デフォルトのclasspathのままでいいならば、sourceSets.main.runtimeClasspath という値を指定しておきます。
args 《Iterator》引数として渡す情報を指定するものです。これはIteratorとしてまとめて用意することもできますし、不定引数として必要な値を個別に引数に指定することもできます。
args 《値1, 値2, ……》
jvmArgs 《Iterator》こちらは、Java仮想マシンへ渡す引数を指定するものです。これもやはりIteratorとか変引数が用意されています。
jvmArgs 《値1, 値2, ……》
workingDir 《テキスト》ワーキングディレクトリを指定するためのものです。引数には、設定したいディレクトリのパスを指定します。これは、プロジェクトのフォルダからの相対パスで指定します。
では、このJavaExecを利用したタスクの例を挙げておきましょう(下のリスト欄を参照)。ここでは、Appクラスを実行するappRunタスクを作成しました。「gradle appRun」と実行すると、コンソールに以下のように出力がされます。
---------- Start ----------
Hello world.
----------- end -----------
Gradleでの実行は、色々出力があって実行結果がわかりにくいので、doFirstとdoLastでテキストを出力し、一目で「これが実行内容だ」とわかるようにしてみました。ここでは、以下のようにExecJavaの設定を行なっています。
main 'App'
classpath sourceSets.main.runtimeClasspath
とりあえず、mainとclasspathだけは用意して下さい。この2つはデフォルトで値が設定されておらず、省略できません。その他のものはデフォルトのままで問題ないでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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() } }
※関連コンテンツ