目录
- 文件目录仓库
- Maven中央库
- JCenter Maven repository
- 本地 Maven 仓库
- 自定义的Maven仓库
文件目录仓库
有些项目可能会更愿意在一个共享磁盘上存储依赖,或者作为项目源码的一部分作为一个二进制存储库的代替。
如果你想要使用文件系统目录作为仓库,只需要写如下:
repositories {
flatDir {
dirs 'lib'
}
flatDir {
dirs 'lib1', 'lib2'
}
}
这增加了存储库,用于查找一个或多个目录以查找依赖项。请注意,这种类型的存储库不支持任何元数据格式,如Ivy XML或Maven POM文件。相反,Gradle将根据artifacts的存在动态生成模块描述符(没有任何依赖信息)。然而,Gradle会优先使用其他存储库的meta-data对应的artifacts。例如,如果Gradle只在一个文件目录存储库中找到jmxri-1.2.1.jar,而在另一个支持元数据的存储库中找到jmxri-1.2.1.pom,那么它将使用第二个存储库来提供模块。
Maven中央库
repositories {
mavenCentral()
}
JCenter Maven repository
Bintray 的 Jcenter是所有流行的Maven OSS工件的最新集合,包括直接发布给Bintray的artifacts
repositories {
jcenter()
}
本地 Maven 仓库
gradle可以从本地maven仓库中获取可用依赖。
Gradle将已解析的依赖存储在它的缓存中。
在build.gradle中添加如下构建脚本声明本地maven缓存作为存储库:
repositories {
mavenLocal()
}
Gradle使用与Maven相同的逻辑来标识本地Maven缓存的位置。如果在settings.xml
中定义了本地Maven仓库位置,那么Gradle将使用这个位置。USER_HOME/.m2
下的settings.xml
将会覆盖M2_HOME/conf
中的settings.xml
。如果没有可获取的settings.xml
,Gradle将默认使用USER_HOME/.m2/repository
作为本地Maven仓库位置。
自定义的Maven仓库
大部分组织或者公司都会有自己的maven仓库并且只能通过内网访问。Gradle可以通过URL来声明Maven仓库。
对于添加自定义Maven仓库可以在build.gradle添加如下:
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
有些时候需要将POMs发布到一个地址,并且JARs和其他的artifacts在其他位置发布,对于这种情况你可以在build.gradle添加如下:
repositories {
maven {
// Look for POMs and artifacts, such as JARs, here
url "http://repo2.mycompany.com/maven2"
// Look for artifacts here if not found at the above location
artifactUrls "http://repo.mycompany.com/jars"
artifactUrls "http://repo.mycompany.com/jars2"
}
}
Gradle将在第一个URL查找POM和JAR,如果没有找到JAR,那么将会使用artifactUrls来查找。