TFSとGradleの連携6:build.gradleの内容

今回使用したbuild.gradleの内容について説明です。

まずはGradle用プラグインの宣言です。
これは使用したいプラグインを記述するだけです。
但し、JUnitについてはJavaプラグインに含まれているので指定する必要はありません。

Gradle028

次は各タスクに対する共通的な設定です。

Gradle029

8行目でソースコードの文字コードはUTF-8であること、9~10行目でFindBugsとcheckstyleのチェック内容でエラーが検知されても、ビルドは中断しないことを指定しています。

次はソースコードの格納場所についてです。

Gradle030

今回、ソースコードのフォルダ構成はGradle標準ではなく、Antの構成にしているので、リリース対象のソースコードとテスト用のソースコードのパスを変更します。

次は各種ライブラリのリポジトリに関するものです。

Gradle031

ざっというと
 ・リポジトリはIvyを使用する
 ・リポジトリの公開パスは「http://tfsba01/ivy_repos
 ・ライブラリの保存場所のパスは「artifact ~」のパターンで検索
 ・依存関係の情報は「ivy "~」で指定されたファイルを参照する
という設定です。もう少し詳細な内容は別の機会にしたいと思います。

次は使用するライブラリの指定です。

Gradle032

これは
 ・テスト用ソースのコンパイルでは、junitのバージョン4.0以上とhamcrest-coreの1.0以上を使用する
 ・checkstyle実行時では、checkstyleのバージョン6.1.1を使用する
という内容になっています。
ここで指定したライブラリが別のライブラリを使用する場合は、repositoriesで指定したリポジトリを使用してライブラリ間の依存関係を解決します。

次はJarファイルの作成についてです。

Gradle033

出力するファイル名を指定します。ちなみに、出力先フォルダは「libs」になります。

次はjacoco(テストカバレッジ取得)の動作設定についてです。

Gradle034

最初のブロック(「jacoco {~」)で、使用するバージョンを指定しています。
なぜか、jacocoだけはここで指定します。

2番目のブロック(「test {~)で、jacocoの設定をします。今回は、カバレッジ取得結果は毎回上書き(前回作成したファイルに追記しない)としているだけです。

3番目のブロック(「jacocoTestReport {~)で、レポートに関する設定をします。
「reports {~」のブロックで、xmlレポートとcsvレポートは出力しない設定にしています。
最後の1文は、タスクの依存関係の設定で、「buildタスクが終わったらjacocoTestReportタスクを実行する」ように指定しています。
ちなみに、このビルドスクリプトでは「jacocoTestReport」が最後のタスクになるので、ビルド定義の「Gradle task(s)」に、この「jacocoTestReport」を指定し、全てのタスクを実行するようにしています。

次はcheckstyleに関する設定です。

Gradle035

「checkstyleMain」が、リリース対象のソースコードに対するタスク設定になります。
「configFile=~」で、チェックパラメータファイルの保存先を指定しています。
「doLast {~」で、Antを個別に呼び出し、事前に作成されたxml形式の結果ファイルを元に、「checkstyle-simple.xsl」テンプレートを使用し、html形式のレポートを作成しています。
※「doLast」は、「タスクの一番最後に実行します」といった感じの宣言です。

「checkstyleTest」は、テスト用ソースコードに対するタスク設定ですが、「<< {}」としているので、「何もしない」ということになります。

次は、FIndBugsに対する設定です。

Gradle036

「findbugsMain」は、リリース対象のソースコードに対するタスク設定になります。
「reports {~」で、xml形式のレポートは生成せず、html形式のレポートは生成する指定にしています。
checkstyleのときと違い、レポート生成は何も指定しなくても自動で実行してくれます。

「findbugsTest」は、「checkstyleTest」同様テスト用ソースコードに対するタスク設定ですが、「<< {}」としているので、「何もしない」ということになります。

概要としては以上になります。各プラグインの詳細については、Gradleのドキュメントページにありますので、そちらを参照してください。

次は、ライブラリのリポジトリとして今回使用した「Ivy」についてです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください