9

在我的国家使用 Gradle 时,从 maven Central 下载 jars 是一项非常及时的工作。
我想将 mavenCentral 更改为 maven-nexus:
这意味着每当我使用 mavenCentral 它总是指向oschina

------edit------
我有很多使用 mavenCentral 的项目,所以我不想更改每个文件。

现在在新脚本中我使用 maven{ url ...} 有什么简单的方法吗?

任何人都可以帮助?
谢谢!

4

4 回答 4

18

将此更改应用于所有项目的最简单方法是使用 gradle init 脚本,该脚本强制使用 oschina 存储库而不是 mavenCentral。你可以这样说:

allprojects{
    repositories {
        all { ArtifactRepository repo ->
            println repo.url.toString()
            if ((repo instanceof MavenArtifactRepository) && repo.url.toString().startsWith("https://repo1.maven.org/maven2")) {
                project.logger.warn "Repository ${repo.url} removed. Only $coporateRepoUrl is allowed"
                remove repo
            }   
        }
        maven { 
            url "http://maven.oschina.net/content/groups/public" 
        }
    }
}

进入一个 gradle 初始化文件。现在您可以通过调用“gradle build -I yourInitFile.gradle”来使用它,或者将此逻辑放入init.gradle存储在目录中的 gradle 主目录中的文件中USER_HOME/.gradle/。现在这将被每个 gradle 调用拾取而无需显式设置-I

另一种选择是创建一个自定义 gradle 发行版,该文件存储在发行版的 init.d 目录中。

于 2014-11-21T09:39:11.350 回答
7

这简单!而不是这个:

repositories {
    mavenCentral()
}

用这个:

repositories {
    maven {
        url "https://..."
    }
}
于 2014-11-21T08:16:00.527 回答
2

只需在模块目录中的 build.gradle 文件中设置存储库,如下所示:

repositories {
    maven { url "http://maven.oschina.net/content/groups/public" }
}
于 2014-11-21T08:18:34.110 回答
1

如果您有很多依赖项(即在所有build.gradle文件中)并且对于您正在使用的存储库 URL

repositories {
    maven {
        url "https://www.myrepourl.com"
    }
}

但您只想在一个文件中更改该网址,然后执行以下操作:

  • 创建gradle.properties文件并添加以下行:REPO_URL=https://www.myrepourl.com
  • 在所有其他build.gradle文件中复制以下内容:

    repositories {
        maven {
            url project.REPO_URL
        }
    }
    

您可以通过这种方式添加和使用更多属性。这对我来说就像魅力一样。干杯!

于 2014-11-21T13:05:47.503 回答