Gradle 配置 init.gradle 实现国内第三方镜像或企业内部Maven源

自带的Maven源地址是国外的,该Maven源在国内的访问速度是很慢的,除非使用了特别的手段。一般情况下,我们建议使用国内的第三方开放的Maven源或企业内部自建Maven源。

那么怎么处理就能够使用自定义的Maven源呢?

首先我们认识下init.gradle。

配置init.gradle文件可以实现在build开始之前执行,所以你可以在这个文件配置一些你想预先加载的操作。

启用init.gradle文件的方法有:

1.在命令行指定文件,例如:gradle --init-script yourdir/init.gradle -q taskName。你可以多次输入此命令来指定多个init文件

2.把init.gradle文件放到 USER_HOME/.gradle/ 目录下

3.把以.gradle结尾的文件放到 USER_HOME/.gradle/init.d/ 目录下

4.把以.gradle结尾的文件放到 GRADLE_HOME/init.d/ 目录下

如果存在上面的4种方式的2种以上,gradle会按上面的1-4序号依次执行这些文件,如果给定目录下存在多个init脚本,会按拼音a-z顺序执行这些脚本。

如何改成自定义的Maven源呢?参考我们给予的代码片段吧。

apply plugin:EnterpriseRepositoryPlugin

class EnterpriseRepositoryPlugin implements Plugin<Gradle> {

    private static String ENTERPRISE_REPOSITORY_URL = "http://maven.aliyun.com/nexus/content/groups/public/"

    void apply(Gradle gradle) {
        // ONLY USE ENTERPRISE REPO FOR DEPENDENCIES
        gradle.allprojects{ project ->
            project.repositories {

                // Remove all repositories not pointing to the enterprise repository url
                all { ArtifactRepository repo ->
                    if (!(repo instanceof MavenArtifactRepository) ||
                          repo.url.toString() != ENTERPRISE_REPOSITORY_URL) {
                        project.logger.lifecycle "Repository ${repo.url} removed. Only $ENTERPRISE_REPOSITORY_URL is allowed"
                        remove repo
                    }
                }

                // add the enterprise repository
                maven {
                    name "STANDARD_ENTERPRISE_REPO"
                    url ENTERPRISE_REPOSITORY_URL
                }
            }
        }
    }
}
相关推荐:
GPhone的模拟器有个特有的号码:15555218135,这个就类似我们实体手机的SIM卡号码啦。 要实现拨号,用手机?当然不行! 更简单,三步: 1.打开终端 2.连接: telnet localhost 5554(5554是你打开模拟器后上 …
在Linux系统上架设ASP.NET网站项目已经在圈子中流行,而“Mono+Jexus”架构模式是Linux承载ASP.NET企业级应用的极为重要的架构方式。 这种架构中,Jexus很好安装、配置,基本上就是一个下载、解压、复制的过 …
如下代码让位于同一行的两个控件分别左对齐和右对齐: <RelativeLayout xmlns:Android="http://schemas.android.com/apk/res/android" Android:background="@drawable/top" Android:layout_width="fill_ …
Socks定义 SOCKS:防火墙安全会话转换协议 (Socks:Protocol for sessions traversal across firewall securely) Socks 协议提供一个框架,在 TCP 和 UDP 域中的客户机/服务器应用程序能更方便安全地使用网 …
VirtualBox 是最强免费的开源虚拟机,简单易用。 VirtualBox可以在 Linux/Mac 和 Windows 主机中运行, 并支持在其中安装 Windows (NT 4.0、2000、XP、Server 2003、Vista、Win7、Win8、Win8.1)、DOS/Windo …
拿起手机扫一扫即可带走我!