Gradle-dependency-management

提供:Dev Guides
移動先:案内検索

Gradle-依存関係管理

Gradleビルドスクリプトは、プロジェクトをビルドするプロセスを定義します。各プロジェクトには、いくつかの依存関係といくつかの出版物が含まれています。 依存関係とは、他のプロジェクトからの必要なJARファイルや、クラスパス内のJDBC JARやEh-cache JARなどの外部JARなど、プロジェクトのビルドをサポートするものを意味します。 出版物とは、テストクラスファイルやビルドファイル(warファイルなど)など、プロジェクトの結果を意味します。

ほとんどすべてのプロジェクトは自己完結型ではありません。 ソースファイルをコンパイルおよびテストするには、他のプロジェクトによってビルドされたファイルが必要です。 たとえば、プロジェクトでHibernateを使用するには、クラスパスにいくつかのHibernate JARを含める必要があります。 Gradleは、いくつかの特別なスクリプトを使用して、ダウンロードする必要がある依存関係を定義します。

Gradleは、どこかで結果を作成して公開することに注意します。 公開は、定義したタスクに基づいています。 ファイルをローカルディレクトリにコピーするか、リモートのMavenまたはlvyリポジトリにアップロードするか、同じマルチプロジェクトビルド内の別のプロジェクトのファイルを使用します。 タスクを公開するプロセスを公開と呼ぶことができます。

依存関係の宣言

依存関係の構成は、依存関係のセットを定義するだけです。 この機能を使用して、Webからダウンロードする外部依存手段を宣言できます。 これは、次のような異なるスタンダーを定義します。

apply plugin: 'java'

repositories {
   mavenCentral()
}

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

依存関係の構成

依存関係の構成は、一連の依存関係を定義するだけです。 この機能を使用して、Webからダウンロードする外部依存関係を宣言できます。 これにより、次のさまざまな標準構成が定義されます。

  • コンパイル-プロジェクトの本番ソースをコンパイルするために必要な依存関係。
  • Runtime -実行時に本番クラスに必要な依存関係。 デフォルトでは、コンパイル時の依存関係も含まれます。
  • テストコンパイル-プロジェクトのテストソースをコンパイルするために必要な依存関係。 デフォルトでは、コンパイル済みのプロダクションクラスとコンパイル時の依存関係が含まれます。
  • テストランタイム-テストの実行に必要な依存関係。 デフォルトでは、ランタイムおよびテストコンパイルの依存関係が含まれます。

外部依存関係

外部依存関係は、依存関係のタイプの1つです。 これは、現在のビルドの外部でビルドされ、Mavenセントラル、企業Mavenまたはlvyリポジトリ、ローカルファイルシステムのディレクトリなど、何らかの種類のリポジトリに格納されているいくつかのファイルへの依存関係です。

次のコードスニペットは、外部依存関係を定義するものです。 build.gradle ファイルでこのコードを使用します。

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

外部依存関係が外部依存関係を宣言しており、ショートカット形式は「group:name:version」のように見えます。

リポジトリ

外部依存関係を追加中。 Gradleはリポジトリでそれらを探します。 リポジトリは、グループ、名前、バージョンごとに整理された単なるファイルのコレクションです。 デフォルトでは、Gradleはリポジトリを定義しません。 少なくとも1つのリポジトリを明示的に定義する必要があります。 次のコードスニペットは、Mavenリポジトリを定義する方法を定義しています。 build.gradle ファイルでこのコードを使用します。

repositories {
   mavenCentral()
}

次のコードは、リモートMavenを定義するためのものです。 build.gradle ファイルでこのコードを使用します。

repositories {
   maven {
      url "http://repo.mycompany.com/maven2"
   }
}

アーティファクトの公開

依存関係の構成は、ファイルの公開にも使用されます。 これらの公開されたファイルは成果物と呼ばれます。 通常、プラグインを使用して成果物を定義します。 ただし、アーティファクトを公開する場所をGradleに伝える必要があります。 これは、リポジトリをアーカイブのアップロードタスクに添付することで実現できます。 Mavenリポジトリを公開するための次の構文をご覧ください。 Gradleは実行中に、プロジェクトの要件に従ってPom.xmlを生成およびアップロードします。 build.gradle ファイルでこのコードを使用します。

apply plugin: 'maven'

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: "file://localhost/tmp/myRepo/")
      }
   }
}