构建被配置为更喜欢设置存储库而不是项目存储库,但存储库“maven”是由构建文件“build.gradle”添加的
Posted
技术标签:
【中文标题】构建被配置为更喜欢设置存储库而不是项目存储库,但存储库“maven”是由构建文件“build.gradle”添加的【英文标题】:Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'build.gradle' 【发布时间】:2021-09-13 13:25:07 【问题描述】:我想将 jitpack.io 添加为我的 gradle 文件中的存储库。 这是我的 gradle 根文件:
buildscript
repositories
google()
mavenCentral()
dependencies
classpath "com.android.tools.build:gradle:7.0.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
task clean(type: Delete)
delete rootProject.buildDir
由于我没有“allrepositories”来将我的依赖项放在那里(只能在那里工作),所以我在 buildscript 代码之后创建并添加了这段代码:
allprojects
repositories
maven url 'https://www.jitpack.io'
但这是我得到的错误
Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'build.gradle'
【问题讨论】:
【参考方案1】:Android 引入了一种定义存储库的新方法。
从setting.gradle
文件中删除dependencyResolutionManagement
块,让您的项目以旧方式工作。
【讨论】:
为我工作,谢谢! 谢谢,但我还必须从 build.gradle 中删除“testImplementation 'junit:junit:'” 太棒了..现在我遇到了一些新错误 -Could not find androidx.databinding:viewbinding:7.0.3.
以及其他一些代码段,如 paypal
相关代码和其他代码
此解决方案有效!谢谢。
这很好用。只是想知道他们为什么这样做? settings.gradle 中的dependencyResolutionManagement 有什么特别的重要性吗?【参考方案2】:
您可以在 settings.gradle 中的 dependencyResolutionManagement 中添加 jitpack.io 作为存储库
dependencyResolutionManagement
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories
google()
mavenCentral()
maven url 'https://jitpack.io'
【讨论】:
这真的很有帮助!非常感谢 这是正确的方式。【参考方案3】:您需要更新settings.gradle
中的设置并将repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
更改为repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
最后,将maven url 'https://jitpack.io'
添加到存储库块中。
完整的settings.gradle
文件如下所示:
import org.gradle.api.initialization.resolve.RepositoriesMode
dependencyResolutionManagement
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
repositories
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
maven url 'https://jitpack.io'
rootProject.name = "appname"
include ':app'
【讨论】:
【参考方案4】:在gradle version '7.1.0'
中只需在setting.gradle
中添加maven url 'https://jitpack.io'
dependencyResolutionManagement
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories
google()
mavenCentral()
maven url 'https://jitpack.io'
【讨论】:
【参考方案5】:解决方案:
您可以添加此网址 在 settings.gradle(Project Settings) 文件中, 您可以在 Gradle 脚本,
中找到像这样在 dependencyResolutionManagement 中添加您的网址
dependencyResolutionManagement
maven
url 'https://jitpack.io'
#完整参考见下图,
现在同步它, 它会起作用的,
谢谢! :)
【讨论】:
【参考方案6】:替换这一行:
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
使用这个:
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
之前
之后
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
【讨论】:
【参考方案7】:随着 Android Studio 的更新,您必须通过 setting.app 控制您的依赖关系
dependencyResolutionManagement
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
maven url 'https://jitpack.io'
rootProject.name = "EmfDetector" 包括 ':app'
请将这条线放在呼吸系统
maven url 'https://jitpack.io' //as i have done above
`
【讨论】:
以上是关于构建被配置为更喜欢设置存储库而不是项目存储库,但存储库“maven”是由构建文件“build.gradle”添加的的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 Spring Boot 中测试我的存储库而不实际将测试数据保存在数据库中吗?
有没有什么办法可以将我的存储库下载为zip并添加到我的本地存储库而不是使用git(repo snc命令)?