是否可以使用Artifactory提供顶级构建依赖项?

时间:2017-12-04 02:07:10

标签: gradle android-gradle artifactory

以下是使用Artifactory配置的顶级build.gradle示例:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:x.x.x"
        classpath 'com.android.tools.build:gradle:x.x.x'
    }
}
allprojects {
    apply plugin: 'com.jfrog.artifactory'
}
artifactory {
    contextUrl = "${artifactory_contextUrl}"
    //... standard artifactory plugin auto-generated from web interface
}

我希望com.android.tools.build:gradle:x.x.x来自Artifactory遥控器,而不是来自jcenter或Google Maven资源库,因为它们被敌对的工作场所代理阻止。

但是,似乎artifactory Gradle插件仅在应用buildscript闭包后才可用。如何从Artifactory获取其他buildscript依赖项?

1 个答案:

答案 0 :(得分:3)

您可以创建简单的Maven远程存储库来提供buildscript依赖项。由于这些远程存储库只是镜像公共存储库,因此您可以匿名访问。这意味着在执行buildscript闭包时,无需配置artifactory_userartifactory_contextUrl

示例build.gradle看起来像这样:

buildscript {
    repositories {
        maven {
            url "http:///example.com:8082/artifactory/list/jcenter/"
        }
        maven {
            url "http://example.com:8082/artifactory/list/google-remote/"
        }
    }
    dependencies {
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:x.x.x"
        classpath 'com.android.tools.build:gradle:x.x.x'
    }
}

其中google-remote是镜像您自己配置的Google Maven存储库的远程存储库的名称(存储库密钥)。

至于为Google Maven Repository本身配置Artifactory遥控器,地址只是maven.google.com,如下图所示:

set up for remote of Google Maven Repository

相关问题