2

Java プロジェクト用の Gradle ビルド スクリプトがあります。プロジェクトの依存関係のリモートとして内部 Artifactory リポジトリをセットアップしました。

プロジェクトのコンパイル時に、Gradle が最初に Artifactory にアクセスして要求するようにします。そこで失敗した場合は、次に JCenter をバックアップとして試行する必要があります。

Gradle 2.8 で Gradle Artifactory プラグイン v3.1.1 を使用しています。プラグインは、そのcontextUrlpublishレポ、およびresolveレポをクロージャで定義します。

artifactory {
    contextUrl = "${artifactoryContextUrl}"
    publish {
        repository {
            repoKey = 'Release'
            username = "${artifactoryUser}"
            password = "${artifactoryPassword}"
            maven = true
        }
    }
    resolve {
        repository {
            repoKey = 'repo'
            username = "${artifactoryUser}"
            password = "${artifactoryPassword}"
            maven = true
        }
    }
}

buildscript とプロジェクトの両方でリポジトリを定義します。

buildscript {
    repositories {
        maven {
            name 'Artifactory'
            url "${artifactoryContextUrl}repo"
            credentials {
                username = "${artifactoryUser}"
                password = "${artifactoryPassword}"
            }
        }
        jcenter()
    }
}

repositories {
    maven {
        name 'Artifactory'
        url "${artifactoryContextUrl}repo"
        credentials {
            username = "${artifactoryUser}"
            password = "${artifactoryPassword}"
        }
    }
    jcenter()
}

GradleがJCenterを試す前artifactoryにこの定義されたリポジトリを参照するように、ビルドスクリプトにクロージャを定義して配置する方法が見つからないように見えるため、Artifactoryリポジトリを繰り返し定義するこれらの重複ステートメントに頼らなければなりませんでした。resolve

buildscript解決策は、とクロージャーの両方でこの重複した定義に対処することが望ましいですが、Gradle-Artifactory プラグインがインストールされる前に、クロージャーrepositories内のプロパティを参照できる可能性は低いようです。artifactory

4

1 に答える 1

4
  1. スクリプトの主要部分にartifactory {}config とconfig の両方は必要ありません。repositoriesを使用repositoriesして Artifactory インスタンスを指しbuildscript、次にartifactory{}主要部分で DSL を指します。
  2. スクリプトで構成する必要はありませんjcenter。 Artifactory はデフォルトでプロキシします。JCenter に存在するものは常に Artifactory から解決できるため、JCenter を使用して Artifactory を「バックアップ」する必要はありません。
于 2015-11-02T23:38:43.353 に答える