Gradleシリーズ13-マルチプロジェクトビルド

エンタープライズプロジェクトでは、複雑なプロジェクトを複数の小さなプロジェクトに分割して共同作業を完了することがよくあります。そのため、複数のプロジェクトを構築する必要があります。複数のプロジェクトの構築には、大規模なプロジェクトのモジュール化と、モジュールの連携による機能全体の完成が必要です。

マルチプロジェクトのビルディングブロックの分割と依存関係

構造との関係にモジュールを行うためのレビューサイト(コメント)で以下に示すように、モジュールが分かれています:
ここに画像の説明を挿入
コア:ビジネス層を含む共通コアコード、コードデータアクセス層の
モデル:モデルのデータカプセル化するための
管理者を:管理ビューとコントローラー
Webを含むモジュール:ビューとコントローラーを含むユーザー操作モジュール

以前のMavenを使用したマルチプロジェクトビルドでは、すべてのモジュールを一元管理するためにルートプロジェクトが一般的に必要でした。Gradleも同じです。また、すべてのモジュールを統合して管理するためにルートプロジェクトが必要です。関係図は次のとおりです。
ここに画像の説明を挿入
すべてのプロジェクトの共通構成(ルートプロジェクトを含む)はすべてのプロジェクトで構成され、すべてのサブモジュールの共通構成はサブプロジェクトで構成され、ビルドされます。プロジェクトのGradle構成項目は、すべてのプロジェクト/サブプロジェクトで構成できます。

デモコンテンツ:

  1. すべてのプロジェクトはJavaプラグインを使用する必要があり、WebプロジェクトもJava環境に依存する必要があります
  2. Webサブプロジェクトはwarパッケージである必要があります
  3. 共通の属性(グループ、バージョンなど)の統合構成
  4. リソースライブラリの統合管理
  5. ログバックログ機能の導入など、一般的な依存関係の構成

デモ手順の例

ルートプロジェクトとすべてのサブモジュールプロジェクトを作成する
  1. Gradle Javaプロジェクト、ArtifactId:コメントを作成します。
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  2. コメントプロジェクトの下にコアモジュールを作成します。ArtifactId:core
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  3. コメントプロジェクトの下にモデルモジュールを作成し、ArtifactId:モデルの
    具体的な作成手順はコアの手順と同じです

  4. コメントプロジェクトの下に管理モジュールを作成します。ArtifactId:adminの
    他の手順は上記の手順と同じですが、この管理がWebプロジェクトであるため、Webを確認する必要があります。
    ここに画像の説明を挿入

  5. コメントプロジェクトの下にWebモジュールを作成します。ArtifactId:web
    とadminは同じです

    以下のように作成したすべてのモジュール、プロジェクト構造の後:
    ここに画像の説明を挿入
    :未満、それがルートで、最終的なプロジェクト構造は以下のようにするので、選択したフォルダSRC SRC削除された地図上になります
    ここに画像の説明を挿入
    私たちは、setting.gradle見ますファイル:
    ここに画像の説明を挿入
    ルートディレクトリはコメントで、4つのモジュールが含まれているため、プロジェクトが作成されます。

Gradleを構成する
依存関係を構成する

コア依存モデルを例に取る

dependencies {
    //core 依赖model子模块
    compile project(":model")
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

同様に、管理とウェブはコアに依存することができます

設定共通Javaプラグインの紹介

コメントプロジェクトのbuild.gradleで、javaプラグインとバージョン紹介構成がすべてのプロジェクトに転送されます。これは、管理プロジェクトとしてのルートプロジェクトもjavaプラグインを追加する必要があるため、サブプロジェクトをここで使用できないためです。

//配置统一的信息,包括root项目
allprojects {
    //统一引入 java插件和版本指定
    apply plugin: "java"
    sourceCompatibility = 1.8
    //统一配置公共属性,例如group,version
    group 'top.zhexi'
    version '1.0-SNAPSHOT'
}

ここに画像の説明を挿入
すべてのサブモジュールでJavaプラグインの概要とバージョン仕様を削除
ここに画像の説明を挿入

ビルド検証
ここに画像の説明を挿入
パブリックリソースライブラリを構成します。構成が完了すると、各モジュールにログバックの依存関係があることがわかります

//配置共用资源库
subprojects {
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
    }
}

159件のオリジナル記事を公開 22件の賞賛 90,000回以上の閲覧

おすすめ

転載: blog.csdn.net/ytuglt/article/details/105026287