Data Grid と Compute Grid (2) : Gradle導入
こんにちは。仕事ではAndroid開発もJavaも縁遠いMr.Nyanです。
GemFire(Apache Geode)の続きの予定でしたが、この先ビルドシステムないと面倒&GeodeチュートリアルがこのGradleありきで記述されていたため、今回はGradle導入します。
Gradleとは
自称世界No.1のプログラミング言語Java界隈では有名なビルドツールらしいです。
チュートリアルなのに、何の説明もなくbuild.gradleファイル晒してくるところから察するにきっとJavaでの開発ではデファクト的なものなのでしょう。
DSLで記述可能ということで、もはや秘伝のタレ化して触るのが恐ろしいMakefile+シェルスクリプトdeployの組み合わせから脱却したい方(=筆者)にはうってつけのツールです。
インストール
こちら
http://qiita.com/vvakame/items/83366fbfa47562fafbf4
を参考にしました。
インストール先は素のWindows10環境です。Cygwinもないため、おススメされているGVMを使わず古き良き方法でインストールします。
あらかじめ必要なものは、バージョン6以上のJavaのみです。
まず、
執筆時点(2017/6/26)最新の
https://services.gradle.org/distributions/gradle-4.0-bin.zip
をダウンロードし、
先に作成しておいたC:\Gradle ディレクトリへ中身(gradle-4.0)を展開します。
次に、環境変数の設定。
[Windowsキー]+[Pause/Breakキー] > [システムの詳細設定] > [環境変数]
と進み、
変数Path へ C:\Gradle\gradle-4.0\bin を追加します。
以上でインストールはできているので、
コマンドプロンプトから
> gradle -version
と打ち込んで、バージョンを確認します。
Microsoft Windows [Version 10.0.15063]
(c) 2017 Microsoft Corporation. All rights reserved.
c:\demo>java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
c:\demo>gradle -version
------------------------------------------------------------
Gradle 4.0
------------------------------------------------------------
Build time: 2017-06-14 15:11:08 UTC
Revision: 316546a5fcb4e2dfe1d6aa0b73a4e09e8cecb5a5
Groovy: 2.4.11
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_77 (Oracle Corporation 25.77-b03)
OS: Windows 10 10.0 amd64
お約束
早速スクリプトで遊んでみましょう。
次の内容でbuild.gradleファイルを作成します。
task hello(dependsOn: 'hells') << {
println "Welcome to Gradle World!!"
}
task hells << {
4.times { println "Hell$it World!!" }
}
このhelloタスクを実行してみると、
> gradle -q hello
次のような出力になります。
c:\demo>gradle -q hello
Hell0 World!!
Hell1 World!!
Hell2 World!!
Hell3 World!!
Welcome to Gradle World!!
簡単にスクリプトの説明をすると、最初のhelloタスクは遅延評価指定(dependsOn)により依存するタスクhellsが指定してあり、hellsタスクを先に実行するようにしています。この例のとおり、先に実行されるhellsタスクを後に記述しても問題ありません。
さいごに
よくあるGradleインストール編でした。C/C++開発用のplug-inが充実すれば仕事でも使いたいですね。
Discussion