Gradle-マルチプロジェクトビルド

Gradleは、最小および最大のプロジェクトを簡単に処理できます。小さなプロジェクトには、単一のビルドファイルとソースツリーがあります。相互に依存する小さなモジュールに分割されたプロジェクトを消化して理解するのは非常に簡単です。Gradleは、マルチプロジェクトビルドであるこのシナリオを完全にサポートします。

マルチプロジェクトビルドの構造

このようなビルドにはすべての形状とサイズがありますが、いくつかの共通の特徴があります-

  • A settings.gradle プロジェクトのルートディレクトリまたはマスターディレクトリにあるファイル。

  • A build.gradle ルートまたはマスターディレクトリ内のファイル。

  • 独自の子ディレクトリ *.gradle ビルドファイル(一部のマルチプロジェクトビルドでは、子プロジェクトビルドスクリプトが省略される場合があります)。

ビルドファイル内のすべてのプロジェクトを一覧表示するには、次のコマンドを使用できます。

C:\> gradle -q projects

出力:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks

指定されている場合、レポートには各プロジェクトの説明が表示されます。次のコマンドを使用して、説明を指定できます。に貼り付けますbuild.gradle ファイル。

description = 'The shared API for the application'

一般的なビルド構成の指定

build.gradle root_project内のファイルでは、一般的な構成をすべてのプロジェクトまたはサブプロジェクトのみに適用できます。

allprojects {
   group = 'com.example.gradle'
   version = '0.1.0'
}

subprojects {
   apply plugin: 'java'
   apply plugin: 'eclipse'
}

これは共通を指定します com.example.gradle グループと 0.1.0すべてのプロジェクトのバージョン。ザ・subprojects クロージャは、すべてのサブプロジェクトに共通の構成を適用しますが、ルートプロジェクトには適用しません。 allprojects 閉鎖はしません。

プロジェクト固有の構成と依存関係

コア ui そして util サブプロジェクトは独自のものを持つこともできます build.gradle ルートプロジェクトの一般的な構成によってまだ適用されていない特定のニーズがある場合は、ファイル。

たとえば、uiプロジェクトは通常、コアプロジェクトに依存しています。したがって、UIプロジェクトには独自のものが必要ですbuild.gradle この依存関係を指定するファイル。

dependencies {
   compile project(':core')
   compile 'log4j:log4j:1.2.17'
}

プロジェクトの依存関係は、プロジェクトメソッドで指定されます。