Hexsmith's blog

业精于勤荒于嬉,行成于思毁于随!

0%

gradle_local_and_remoting_repositories

1、本地仓库

配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gradle下载的依赖包。通常我们配置成和Maven同一个本地路径

gradle本地仓库

2、远程仓库

一般Gradle、maven从中央仓库mavenCentral() http://repo1.maven.org/maven2/下载依赖包,但是在国内下载速度巨慢,我们只能使用国内的镜像。
所以每个Gradle构建的项目中,我们可以在build.gradle做如下配置

1
2
3
4
5
6
repositories {
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
mavenCentral()
}

每个项目都如此配置难免麻烦些,我们可以配置一个全局配置文件。

1
.gradle\init.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}

gradle远程仓库

3、init.gradle简介

init.gradle文件在build开始之前执行,所以你可以在这个文件配置一些你想预先加载的操作
例如配置build日志输出、配置你的机器信息,比如jdk安装目录,配置在build时必须个人信息,比如仓库或者数据库的认证信息,and so on.

启用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顺序执行这些脚本
类似于build.gradle脚本,init脚本有时groovy语言脚本。每个init脚本都存在一个对应的gradle实例,你在这个文件中调用的所有方法和属性,都会
委托给这个gradle实例,每个init脚本都实现了Script接口

下面的例子是在build执行之前给所有的项目制定maven本地库,这个例子同时在 build.gradle文件指定了maven的仓库中心,注意它们之间异同

build.gradle

1
2
3
4
5
6
7
8
repositories {
mavenCentral()
}

task showRepos << {
println "All repos:"
println repositories.collect { it.name }
}

init.gradle

1
2
3
4
5
allprojects {
repositories {
mavenLocal()
}
}

在命令行输入命令:

1
2
gradle –init-script init.gradle -q showRepos

1
2
3
> gradle --init-script init.gradle -q showRepos
All repos:
[MavenLocal, MavenRepo]

4、参考

https://blog.csdn.net/x_iya/article/details/75040806

------------- 本文结束 感谢您的阅读 -------------