如何将额外的 Maven 存储库添加到 Android Studio 构建

How to add an additional Maven repository to Android Studio build

我已将以下内容添加到我应用程序的 dependencies 部分 build.gradle

implementation 'org.seleniumhq.selenium:selenium-htmlunit-driver:3.56.0'

但我收到错误:

Could not find org.seleniumhq.selenium:selenium-htmlunit-driver:3.56.0.
Searched in the following locations:
   - https://dl.google.com/dl/android/maven2/org/seleniumhq/selenium/selenium-htmlunit-driver/3.56.0/selenium-htmlunit-driver-3.56.0.pom

   - https://repo.maven.apache.org/maven2/org/seleniumhq/selenium/selenium-htmlunit-driver/3.56.0/selenium-htmlunit-driver-3.56.0.pom

   - https://jcenter.bintray.com/org/seleniumhq/selenium/selenium-htmlunit-driver/3.56.0/selenium-htmlunit-driver-3.56.0.pom
 Required by:
     project :app

所以在项目build.gradle文件中,我在repositories部分添加了:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()

        // ADDED THIS 2021 12 17
        maven {
            url("https://mvnrepository.com")
        }

        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.3"
    }
}

我认为这可行,因为当我使用浏览器导航到该页面时,该页面包含 selenium-htmlunit_driver_3.56.0,域 mvnrepository.com

我期望的是会找到指定的依赖项。或者,我会得到一份报告,其中包含“在以下位置搜索:”下的另一行,但将该行添加到项目 build.grade 无效。

我需要做什么才能搜索额外的 Maven 存储库?从 mavenCentral() 条目 (repo.maven.apache.org/maven2...) 获取的 Maven 存储库不包含我想尝试的 selenium-htmlunit-drive 版本.

这是使用 Artic Fox 2020.3.1 补丁 3。

我做错了什么?

试试这个 URL:https://repo1.maven.org/maven2

文件可在此处获得:Link

mvnrepository.com 只是搜索依赖项的前端,而不是带有 jar 文件本身的文件系统。

Artic Fox 开始使用另一种基于 depedencyResolutionManagment 的技术,该技术引入了这种令人头疼的情况,即不搜索应用程序级 build.grade 文件中的条目。

在这种情况下对我有用的是进入 settings.gradle(不是 build.gradle 并更改:

repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)

repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)

为了更好地衡量,我将我的额外存储库放入 settings.gradle 中,结果如下:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) // WAS: FAIL_ON_PROJECT_REPOS
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
        maven {url 'https://mvnrepository.com'} // ADDED THIS
    }
}

进行这些更改后,Android Studio 标准构建过程会自动下载相应的工件。