有办法更改项目build.gradle中默认存储库的位置吗?我使用的是一台公司电脑,它有一个~/.gradle/init.gradle
文件,全局指定默认的gradle repos,比如:
allProjects {
buildscript {
repositories {
mavenLocal()
maven { url "<company url>"}
}
}
repositories {
mavenLocal()
maven { url "< company repo url>"}
}
}
我只能在公司网络上访问它,这意味着如果我不登录,任何附带项目的构建都会失败。有没有办法在项目中覆盖此回购,指向不同的(公共)回购?我尝试了各种方法,比如将项目build.gradle
更改为具有:
repositories {
maven {
url "https://maven.springframwork.org/release"
}
}
但它仍试图指向该公司回购,但未能解决
如果需要为依赖项添加一些存储库,可以在build.gradle
中直接添加。如果你想覆盖Gradle插件存储库,在全局初始化脚本中定义,只为特定的项目,你需要:
- 创建一个init脚本,该脚本将在
USER_HOME/.gradle/
目录中的init.gradle
之后执行(例如,USER_HOME/.gradle/init.d/
目录中的init.gradle.kts
) - 使用某些
if
条件来指定此覆盖将覆盖哪些项目(例如,在某个特定文件夹中)。Gradle脚本不仅仅是一个DSL,你可以使用图灵的所有能力来完成Groovy/Kotlin
我将在这里使用Kotlin(可能它也是一个有效的Groovy代码):
settingsEvaluated {
if (rootProject.projectDir.toString().startsWith("path/to/my/side/projects/folder")) {
pluginManagement {
repositories {
gradlePluginPortal()
mavenLocal()
}
}
}
}