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