Graadleの依頼管理

10168 ワード

原文の住所 http://www.gradle.org/docs/current/userguide/artifact_dependencies_トゥートリアル.
 
8.1. What is dependency management?どういう意味ですか?なぜですか
管理には大体二つのブロックがあります。まず、Gradeはあなたのプロジェクトに必要なものを見つけなければなりません。これらのものはいわゆる「依存」です。また、Graadleはあなたのプロジェクトの出力を構築しアップロードする必要があります。これは発行というものです。それらをよく見ましょう。
ほとんどの工事は自給自足できないので、他の工事の書類を使います。例えば、私のプロジェクトはHibernateが必要です。そのクラスを入れなければなりません。例えば、テストの時、いくつかの追加のjarカバンが必要です。これらの書類は工事の依存です。Graadleはどのようなプロジェクトに依存しているかを教えてほしいです。それらはどこにありますか?そして構築に参加してください。依存は、MavenまたはIvyライブラリのようなリモートライブラリにダウンロードする必要があります。ローカルライブラリでもいいし、他のプロジェクトでもあります。私達はこの過程を「依存解決」と呼びます。
通常、依存自体にも依存があります。例えば、ヒベルナのコアライブラリは他のクラスに依存しています。Graadleがあなたのプロジェクトをテストする時、それもこれらの間接的な依存を探し当てる必要があります。私たちはそれを「伝達依存」と呼びます。 trantive dependencies)
大部分の工事の構築の主な目的は工事から離れることです。例えば、Jarパッケージを生成し、ソースコード、ドキュメントなどを含めてリリースします。これらのゲームはプロジェクトの発行内容を構成しています。Gradeもあなたのためにこの仕事を心配します。リリースすると宣言しましたが、Gradeは構築して発行します。ファイルをどこかにコピーしたり、リモートにアップロードしたりするかもしれません。 MavenやIvyライブラリは、他の項目でも使用されます。これは全部いわゆる発行です。
8.2. Declaring your dependencies依存声明
簡単な依存宣言のスクリプトを見てみます。
Example 8.1. Declaring dependenciesbuild.gradle
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.+'
}
これは毛をやっていますか?このシナリオは、1プロジェクトをコンパイルする時、Hibername core 3.6.7.Finalが必要です。このようにヒベルナタのコアライブラリとその依存ライブラリが導入されます。2,テストする時は4.0以上のバージョンのjunnitが必要です。そしてこれらのカバンは全部Maven central庫から探します。これから詳しく見ます。
8.3. Dependency configrations依存配置
Graadleの依存は、「プロファイル」にグループ化されます。 。一つの構成は名前依存のセットであり、「依存配置」と呼ばれています。外部依存を宣言してもいいです。後で見ます。
Javaプラグインは、プラグイン自体のクラスパスライブラリを形成する標準的な構成を定義しています。次の列に並べば、自分でここに行ってみてもいいです。テーブル 23.5「Java plugin-dependency configrations」.
comple
この依存はコンパイル発行に必要です。
runtime
この依存性は実行時に必要で、デフォルトではコンパイル時の依存性が含まれます。
test Comple
この依存性はコンパイルテストに必要です。デフォルトではコンパイル製品の依存性とコンパイル時の依存性が含まれます。
testRuntime
この依存性はテストに必要です。デフォルトではコンパイル、実行時、テストコンパイル依存性が含まれます。
固定化配置を見てください。  アクション 50.3「Dependency configrations」
8.4. External dependencies外部依存
依存のタイプはいろいろありますが、今は外部依存性を言います。このような依存の対象は工事内になくて、甚だしきに至っては遠隔倉庫の中にあります。
外部依存性を定義するには以下のように依存構成に追加する必要があります。
Example 8.2. Definition of an external dependencybuild.gradle
dependencies {
    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}
外部依存groupを使用して、  name およびversion を選択します。使用ライブラリによってgroup およびversion 。 :Example 8.3. Shotcut definition of an external dependencybuild.gradle
dependencies {
    compile 'org.hibernate:hibernate-core:3.6.7.Final'
}
もっと情報を見てください  アクション 50.4「How to declare your dependencies」.
8.5. Repositoriesライブラリ
Graadleは外部依存をどう位置付けますか?答えは「ライブラリ」です。一つのライブラリはファイルの山です。groupを使っています。  name およびversion 。Gradle ,  MavenとIvy;また、ローカルシステムやHTTPなど、様々な方法でライブラリに接続されています。
Gradeはデフォルトでライブラリを定義していません。あなたが使用する前に、少なくとも一つの定義が必要です。例えば、Maven centralライブラリ:
Example 8.4. Usage of Maven central repositorybuild.gradle
repositories {
    mavenCentral()
}
またはリモートMavenライブラリ:
Example 8.5. Usage of a remote Maven repositorybuild.gradle
repositories {
    maven {
        url "http://repo.mycompany.com/maven2"
    }
}
またはリモートIvyライブラリ:
Example 8.6. Usage of a remote Ivy directorybuild.gradle
repositories {
    ivy {
        url "http://repo.mycompany.com/repo"
    }
}
自分で倉庫を作って指定してもいいです。
Example 8.7. Usage of a local Ivy directorybuild.gradle
repositories {
    ivy {
        // URL can refer to a local directory
        url "../local-repo"
    }
}
工程では複数のライブラリを作成できます。Gradeは順を追って検索します。一度見つけたら停止します。もっと情報を見てください  アクション 50.6「Repositories」.
 
8.6. Publishing artfactsリリースファイル
依存配置はファイルを公開するためにも使われています。これらのファイルは「配布ファイル」と呼ばれています。または単に「配布」といいます。
一般的にプラグインは多くの送信定義作業をしますので、私達は何もしなくてもいいです。でも、Graadleの配送先はどこに行くか教えてください。方法は倉庫を添付することです。  uploadArchives 仕事中です。例えば、私達はリモートIvyライブラリにリリースします。
Example 8.8. Publishing to an Ivy repositorybuild.gradle
uploadArchives {
    repositories {
        ivy {
            credentials {
                username "username"
                password "pw"
            }
            url "http://repo.mycompany.com"
        }
    }
}
今実行します  gradle uploadArchives、Gradeは、前回あなたのJarパケットを構築し、同時にivy.xmlを生成してアップロードします。 ファイル..
Mavenライブラリに投稿できます。文法は少し違います。Mavenプラグインを使うべきだと覚えてください。そうでないと発行できません。このようにGraadleは生成してアップロードすることができます。
Example 8.9. Publishing to a Maven repositorypom.xml 。
apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "file://localhost/tmp/myRepo/")
        }
    }
}
もっと発表についての情報を見てください。  Chapter 51, Publishing artfacts.