gpt4 book ai didi

jenkins - Gradle-build.gradle中的 “override”行为/属性

转载 作者:行者123 更新时间:2023-12-03 03:56:49 24 4
gpt4 key购买 nike

我绝对不是Gradle专家,所以请保持温柔...

我有一个Gradle构建,试图在Jenkins上运行。 build.gradle包含以下内容:

repositories {
maven {
url "http://some_internal_corporate_repo"
}
}

我正在其上运行作业的Jenkins服务器无法访问“some_internal_corporate_repo”。

作为 ,我无法修改build.gradle的,我想知道是否有一种方法可以通过Jenkins服务器扩展或覆盖build.gradle,使其指向mavenCentral(或类似名称),也许是通过init进行。文件或设置属性等?

提前致谢

编辑:最后,因为我使用的是Jenkins,所以我使用了Groovy支持(执行Groovy构建步骤)来解决我的问题:
def file = new File('build.gradle')
def newConfig = file.text.replace('url "http://some_internal_corporate_repo"', 'url "http://repo.maven.apache.org/maven2/"')
file.text = newConfig

最佳答案

您可以定义 multiple repositories

The order of declaration determines how Gradle will check for dependencies at runtime


repositories {
maven {
url "http://some_internal_corporate_repo"
}
mavenCentral()
}

您可以使用属性来定义Maven存储库URL:
repositories {
maven {
url "${repositories_maven_url}"
}
}

gradle.properties文件中
repositories_maven_url=maven_url

根据 gradle documentation,按以下顺序应用 gradle.properties文件:

项目根目录中的
  • gradle.properties
  • GRADT_USER_HOME目录中的
  • gradle.properties
  • 系统属性,例如在命令行上设置-Dgradle.user.home时。

  • 或者 ,您可以使用类似的东西:
    repositories {
    maven {
    url getMavenUrl()
    }
    }

    /**
    * Returns the url of the maven repo.
    * Set this value in your ~/.gradle/gradle.properties with repositories_maven_url key
    * If the property is not defined returns a default value
    * @return
    */
    def getMavenUrl() {
    return hasProperty('repositories_maven_url') ? repositories_maven_url : "YOUR_DEFAULT_VALUE"
    }

    关于jenkins - Gradle-build.gradle中的 “override”行为/属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56699232/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com