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

标签 gradle android-gradle-plugin 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 依赖项?

最佳答案

您可以创建简单的 Maven 远程存储库来服务 buildscript 依赖项。由于这些远程存储库只是镜像公共(public)存储库,因此您可以进行匿名访问。这意味着在执行 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 存储库的远程存储库的名称(存储库 key )。

至于为 Google Maven 存储库本身配置 Artifactory 远程,地址很简单,如下图所示:maven.google.com:

set up for remote of Google Maven Repository

关于gradle - 是否可以使用 Artifactory 提供顶级构建脚本依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47625541/

相关文章:

groovy - 如何使用Gradle构建Groovy JAR并将其发布到内部 repo 中

java - Artifactory Java 客户端的 Gradle/Maven 配置

java - Android Library编译到哪里?

android - 使用 Gradle 在 Android 中使用 JUnit 进行单元测试

android - 如何将 aar 库上传到 Nexus?

android - 多项目 androidTest 依赖项

java - 从 Artifactory 获取 GAV Artifactory

java - gradle + java项目中的根模块可以包含源文件吗?

java - 无法在 IntelliJ 2018.2.2 w/Gradle 4.9 中运行 JUnit 5 测试

android - 协助Android Studio Gradle