将Gradle mavenCentral URL更改为我的仓库

时间:2014-11-21 08:09:49

标签: android gradle maven-central

在我的国家与Gradle合作时,从maven central下载罐子是一项非常及时的工作 我想将mavenCentral改为maven-nexus:
这意味着每当我使用mavenCentral时,始终指向 oschina

------ ------编辑
我有很多mavenCentral项目,所以我不想更改每个文件。

现在在新脚本中我使用maven {url ...} 任何简单的方法?

任何人都可以发牢骚吗? 谢谢!

4 个答案:

答案 0 :(得分:14)

对所有项目应用此更改的最简单方法是使用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 init文件。 现在你可以通过调用" gradle build -I yourInitFile.gradle"来使用它。或者将此逻辑放入存储在init.gradle目录中的gradle主目录中的USER_HOME/.gradle/文件中。现在,每次gradle调用都会选中此项,而不会明确设置-I

另一个选项是创建自定义gradle分发,其中此文件存储在分发的init.d目录中。

答案 1 :(得分:5)

很容易!而不是:

repositories {
    mavenCentral()
}

使用此:

repositories {
    maven {
        url "https://..."
    }
}

答案 2 :(得分:2)

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

repositories {
    maven { url "http://maven.oschina.net/content/groups/public" }
}

答案 3 :(得分:1)

如果您有很多依赖项(即在所有build.gradle文件中)和您正在使用的存储库网址

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

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

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

    repositories {
        maven {
            url project.REPO_URL
        }
    }
    

你可以添加&以这种方式使用更多属性。 这对我来说很有魅力。干杯!