Gradleについて
最近Gradleを勉強しているので、その書き残し。
Gradleとは
2007年頃に開発がスタートし、SpringフレームワークやAndroidアプリケーション開発のビルドツールとして採用されるなどで注目される。
大きな特徴としてはビルドスクリプトを「シンプルに記述出来る」という点。
また、AntやMavenと言った既存のビルドツールを活用しているため、既存の資産を活かしてGradleを取り込めます。
ビルドツールとは
・テストを実行してテスト結果やカバレッジ測定結果を出力する。
・Javadocなどのドキュメントを生成する。
・jarやwarを生成する
・ライブラリを自動でダウンロードし、依存関係の解決を行う
Javaの主なビルドツール
Ant
提供機能は多くないため、シンプルで使いやすい。
しかし、複雑なことをするにはビルドスクリプトが冗長になってしまい、メンテナンスが困難になる。
ライブラリの依存関係を管理できないため、手作業での解決となる。
POM(プロジェクトオブジェクトモデル)という概念を持ち、Antのビルドスクリプトが冗長するという弱点を解決。
POMにメタデータを持たせることでライブラリの依存関係を自動的に解決することができるようになる。高機能だが仕様の理解が重要であり、仕様外のことをするのは難易度が高い。
Gradle
Antの柔軟性とMavenの依存性解決という良い点を組み合わせ、シンプルなスクリプトで記述が出来る。言語はGroovy言語で書かれている。GroovyとJavaは言語として似ている部分があり、Javaエンジニアにとっては理解しやすい。
便利機能
Gradle ラッパー
プロジェクトにGradleを導入する際、メンバーや担当者がGradleをインストールする必要がない。
GradleにはGradleラッパー機能というものがあり、gradleプロジェクトのフォルダを配布するだけ、インストール不要でビルドや各タスクを実行することが出来る。
通常Gradleの実行にはコマンド gradle ~~ の用に指定するが、未インストール環境では gradlew ~~ の用にwを一文字つけるだけで同じようにタスクを実行出来る。