如何将额外的 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 标准构建过程会自动下载相应的工件。
我已将以下内容添加到我应用程序的 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 标准构建过程会自动下载相应的工件。