Javaのビルドツールって、何を使ってますでしょうか?
私はmavenしか知らなかったのですが、gradleが流行っている?らしく、
ちょっと触ってみました。(ほんと、触った程度。。)
※OSはAmazon Linuxで試していきます。
何が良いのか?
gradleはビルドの記述をGroovyで書けるそうです。
とりあえず、私は「Groovy」が分かりません。。が、ひとまず進むことにします。
mavenのようにxmlて書かなくて良いだけは分かりました。
なにはともあれ、インストール
Java(JDK)はすでにインストールされているとします。(バージョン6以上)
gradleのビルドに必要になります。
gradleのダウンロード
# 2.9が最新っぽいので。ダウンロード先は任意です。
$wget https://services.gradle.org/distributions/gradle-2.9-all.zip
$unzip gradle-2.9-all.zip
$rm -f gradle-2.9-all.zip
$ln -s gradle-2.9 gradle
以下のファイルに追記し、PATHを通しておく
export GRADLE_HOME=$HOME/gradle
export PATH=$GRADLE_HOME/bin:$PATH
設定を反映させておく、gradleコマンドが通ればOK
$source .bash_profile
$gradle -v
------------------------------------------------------------
Gradle 2.9
------------------------------------------------------------
Build time: 2015-11-17 07:02:17 UTC
Build number: none
Revision: b463d7980c40d44c4657dc80025275b84a29e31f
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.7.0_91 (Oracle Corporation 24.91-b01)
OS: Linux 4.1.10-17.31.amzn1.x86_64 amd64
Javaプロジェクトの作成
ひとまず、何かしら実行できそうです。
mavenでもJavaプロジェクトのひな型を作れたので、gradleもきっとあるはず、、、、ありそうですね!
Javaプロジェクトの作成
gradle init --type java-libraryで作れます。
$mkdir java_test
$cd java_test/
$gradle init --type java-library
:wrapper
:init
BUILD SUCCESSFUL
Total time: 3.222 secs
This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.9/userguide/gradle_daemon.html
何かできました。以下のようなディレクトリ構造になるみたいですね。
ソースコードの構成はmavenと同じでした。
├── build.gradle:ビルドファイル。pom.xmlみたいのもの。
├── build/:ビルド成果物の出力先
│ └── libs/:JARファイルの出力先
└── src/
├── main/
│ ├── java/:ソースコード
│ │ ├──Library.java:サンプルコード
│ └── resources/:JARに同梱されるリソース
└── test/
├── java/:テスト用ソースコード
│ ├──LibraryTest.java:サンプルテストコード
└── resources/:テスト実行時に使われるリソース
サンプルコードをビルド
細かい説明は次回にして(笑)、まずはビルドしてみましょう。
gradle buildだけです。
$gradle build
:compileJava
・・
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava
・・
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Total time: 10.19 secs
# jarができたか確認
$ll build/libs/
-rw-rw-r-- 1 ec2-user ec2-user 591 Dec 20 22:54 java_test.jar
色々実行されたました。コロン(:)で書かれている部分がタスクと呼ばれ、
buildによって順次実行されていくようです。
おそらくテストだけしたいなら、gradle testでいけるはず。
また、buildディレクトリ配下に成果物が出力されていることも確認できました。
最後に
ひとまず実行はできましたが、mavenに対するメリットはまだ感じられません。
次回は、build.gradleファイルの中身を確認してみたいと思います。
ではでは。