Gradle支持以下仓库格式:
- Ivy仓库
- Maven仓库
- Flat directory仓库
一、添加仓库
1、添加Ivy仓库
1.1、通过URL地址添加一个Ivy仓库
我们可以将以下代码片段加入到build.gradle文件中:
2、添加maven仓库
2.1、通过URL地址添加一个Maven仓库
我们可以将以下代码片段加入到build.gradle文件中:
2.2、通过本地文件系统地址添加一个Maven仓库
我们可以将以下代码片段加入到build.gradle文件中:
在加入Maven仓库时,Gradle提供了三种“别名”供我们使用,它们分别是:
- mavenCentral()别名,表示依赖是从Central Maven 2 仓库中获取的。
- jcenter()别名,表示依赖是从Bintary’s JCenter Maven 仓库中获取的。
- mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的。
如果我们想要将Central Maven 2 仓库加入到构建中,我们必须在build.gradle文件中加入以下代码片段:
3、添加Flat Directory仓库
如果想要使用Flat Directory仓库,我们需要将以下代码片段加入到build.gradle文件中:
这意味着系统将在lib目录下搜索依赖,
同样的,如果你愿意的话可以加入多个目录,代码片段如下:
二、引入依赖
Java插件指定了若干依赖配置项,其描述如下:
- 当项目的源代码被编译时,compile配置项中的依赖是必须的。
- runtime配置项中包含的依赖在运行时是必须的。
- testCompile配置项中包含的依赖在编译项目的测试代码时是必须的。
- testRuntime配置项中包含的依赖在运行测试代码时是必须的。
- archives配置项中包含项目生成的文件(如Jar文件)。
- default配置项中包含运行时必须的依赖。
最普遍的依赖称为外部依赖,这些依赖存放在外部仓库中。一个外部依赖可以由以下属性指定:
- group属性指定依赖的分组(在Maven中,就是groupId)。
- name属性指定依赖的名称(在Maven中,就是artifactId)。
- version属性指定外部依赖的版本(在Maven中,就是version)。
这些属性在Maven仓库中是必须的,如果你使用其他仓库,一些属性可能是可选的。
打个比方,如果使用Flat directory仓库,只需要指定名称和版本。
我们假设我们需要指定以下依赖:
- 依赖的分组是foo。
- 依赖的名称是foo。
- 依赖的版本是0.1。
- 在项目编译时需要这些依赖。
我们可以将以下代码片段加入到build.gradle中,进行依赖声明:
我们也可以采用一种快捷方式声明依赖:[group]:[name]:[version]。如果我们想用这种方式,我们可以将以下代码段加入到build.gradle中:
我们也可以在同一个配置项中加入多个依赖,传统的方式如下:
如果采用快捷方式,那可以是这样:
自然地,声明属于不同配置项的依赖也是可以的。比如说,如果我们想要声明属于compile和testCompile配置项的依赖,可以这么做:
compile group: 'foo', name: 'foo', version: '0.1'
testCompile group: 'test', name: 'test', version: '0.1'
}
快捷方式
三、附录 - 引入阿里云的maven仓库
感谢阿里云!
找到gradle的配置文件路径,例如Windows中的路径为C:Users${你的用户名}.gradle
新建一个文件名为init.gradle,用记事本或者类似的编辑器打开,输入以下内容:
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 build的时候,你能看到下载地址切换到阿里云了,终于不用漫长的等待了。