本质上说,仓库是一种存放依赖的容器,每一个项目都具备一个或多个仓库。
Gradle支持以下仓库格式:
我们来看一下,对于每一种仓库类型,我们在构建中应该如何配置。
我们可以通过URL地址或本地文件系统地址,将Ivy仓库加入到我们的构建中。
如果想通过URL地址添加一个Ivy仓库,我们可以将以下代码片段加入到build.gradle文件中:
1
2
3
4
5
|
repositories {
ivy {
url
"http://ivy.petrikainulainen.net/repo"
}
}
|
如果想通过本地文件系统地址添加一个Ivy仓库,我们可以将以下代码片段加入到build.gradle文件中:
1
2
3
4
5
|
repositories {
ivy {
url
"../ivy-repo"
}
}
|
小贴士:如果你想要获得更多关于Ivy仓库配置的信息,你可以参考以下资源:
我们继续,下面是如何在构建中加入Maven仓库。
与Ivy仓库很类似,我们可以通过URL地址或本地文件系统地址,将Maven仓库加入到我们的构建中。
如果想通过URL地址添加一个Maven仓库,我们可以将以下代码片段加入到build.gradle文件中:
1
2
3
4
5
|
repositories {
maven {
url
"http://maven.petrikainulainen.net/repo"
}
}
|
如果想通过本地文件系统地址添加一个Maven仓库,我们可以将以下代码片段加入到build.gradle文件中:
1
2
3
4
5
|
repositories {
maven {
url
"../maven-repo"
}
}
|
在加入Maven仓库时,Gradle提供了三种“别名”供我们使用,它们分别是:
如果我们想要将Central Maven 2 仓库加入到构建中,我们必须在build.gradle文件中加入以下代码片段:
1
2
3
|
repositories {
mavenCentral()
}
|
小贴士:如果你想要获取更多关于Maven仓库配置的信息,你可以参考这篇文章:
section 50.6.4 Maven Repositories of the Gradle User Guide
我们继续,下面是如何在构建中加入Flat Directory仓库。
如果我们想要使用Flat Directory仓库,我们需要将以下代码片段加入到build.gradle文件中:
1
2
3
4
5
|
repositories {
flatDir {
dirs
'lib'
}
}
|
这意味着系统将在lib目录下搜索依赖,同样的,如果你愿意的话可以加入多个目录,代码片段如下:
1
2
3
4
5
|
repositories {
flatDir {
dirs
'libA'
,
'libB'
}
}
|
小贴士:如果你想要获得更多关于Flat Directory仓库配置的信息,你可以参考以下资源:
我们继续,下面要讲的是,如何使用Gradle管理项目中的依赖。
在配置完项目仓库后,我们可以声明其中的依赖,如果我们想要声明一个新的依赖,可以采用如下步骤:
让我们看一下详细步骤:
在Gradle中,依赖是按照指定名称进行分类的,这些分类被称为配置项,我们可以使用配置项声明项目的外部依赖。
Java插件指定了若干依赖配置项,其描述如下:
我们继续,下面是如何在项目中声明依赖。
最普遍的依赖称为外部依赖,这些依赖存放在外部仓库中。一个外部依赖可以由以下属性指定:
小贴士:这些属性在Maven仓库中是必须的,如果你使用其他仓库,一些属性可能是可选的。打个比方,如果你使用Flat directory仓库,你可能只需要指定名称和版本。
我们假设我们需要指定以下依赖:
我们可以将以下代码片段加入到build.gradle中,进行依赖声明:
1
2
3
|
dependencies {
compile group:
'foo'
, name:
'foo'
, version:
'0.1'
}
|
我们也可以采用一种快捷方式声明依赖:[group]:[name]:[version]。如果我们想用这种方式,我们可以将以下代码段加入到build.gradle中:
1
2
3
|
dependencies {
compile
'foo:foo:0.1'
}
|
我们也可以在同一个配置项中加入多个依赖,传统的方式如下:
1
2
3
4
5
6
|
dependencies {
compile (
[group:
'foo'
, name:
'foo'
, version:
'0.1'
],
[group:
'bar'
, name:
'bar'
, version:
'0.1'
]
)
}
|
如果采用快捷方式,那可以是这样:
1
2
3
|
dependencies {
compile
'foo:foo:0.1'
,
'bar:bar:0.1'
}
|
自然地,声明属于不同配置项的依赖也是可以的。比如说,如果我们想要声明属于compile和testCompile配置项的依赖,可以这么做:
1
2
3
4
|
dependencies {
compile group:
'foo'
, name:
'foo'
, version:
'0.1'
testCompile group:
'test'
, name:
'test'
, version:
'0.1'
}
|
同样的,给力的快捷方式又来了( ̄︶ ̄)
1
2
3
4
|
dependencies {
compile
'foo:foo:0.1'
testCompile
'test:test:0.1'
}
|