Gradle(5)-仓库类型
2020-07-27 本文已影响0人
卡门001
仓库类型
Flat directory repository
将项目中的文件目录作为仓库。
- flatDir { dirs 'libs'}
- flatDir { dirs 'lib1', 'lib2' }
Maven Central repository
是一个流行的仓库,拥有大量的Java项目开源库。
- mavenCentral()
JCenter Maven repository
是一个所有流行开源软件手工制品的最新集合的仓库。
- jcenter()
Google Maven repository
谷歌仓库拥有安卓特定的手工制品,包括Android SDK
- google()
Local Maven repository
有利于团队将一个项目发布到本地仓库,并在另一个项目中使用该手工制品。
- mavenLocal()
Custom Maven repositories
很多机构将依赖放在一个机构内部的Maven仓库中,只有使用公司网络才能访问。
Gradle可以通过URL声明Maven仓库。
maven { url "http://repo.mycompany.com/maven2" }
有时一个仓库会把POMs发布到一个地方,把JARs和其它手工制品发布到另外一个地方。你可以这样定义此种仓库:
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"
}
}
Custom Ivy repositories
- Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java软件开发。
- Apache Ivy,是一个管理项目依赖的工具。机构可能将依赖放在一个机构内部的Ivy仓库中。Gradle可以通过URL声明Ivy仓库。
- Defining an Ivy repository with a standard layout 声明一个使用标准布局的Ivy仓库
repositories {
ivy {
url "http://repo.mycompany.com/repo"
}
}
- Defining a named layout for an Ivy repository 声明一个命名布局的Ivy仓库
repositories {
ivy {
url "http://repo.mycompany.com/repo"
layout "maven"
}
}
有效的命名布局值:"gradle" (默认),"maven","ivy","patter"。
- Defining custom pattern layout for an Ivy repository 为一个Ivy仓库声明自定义样式布局
repositories {
ivy {
url "http://repo.mycompany.com/repo"
patternLayout {
artifact "[module]/[revision]/[type]/[artifact].[ext]"
}
}
}
- Accessing password-protected Ivy repositories 访问有密码保护的Ivy仓库
repositories {
ivy {
url "http://repo.mycompany.com"
credentials {
username "user"
password "password"
}
}
}
支持协议
Supported metadata sources 支持的元数据来源
当在一个仓库中查找一个模块的时候,Gradle默认会检查那个仓库中的元数据文件的格式。在Maven仓库中Gradle查找.pom文件,在Ivy仓库中查找ivy.xml文件,在flat目录仓库中(不需要任何元数据)直接查找.jar文件。从5.0版本的Gradle开始查找.module(Gradle模块元数据)文件。
repositories {
maven {
url "http://repo.mycompany.com/repo"
metadataSources {
mavenPom()
artifact()
}
}
}
使用http协议的仓库
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
ivy {
url "http://repo.mycompany.com/repo"
}
}
使用sftp协议的仓库
repositories {
maven {
url "sftp://repo.mycompany.com:22/maven2"
credentials {
username "user"
password "password"
}
}
ivy {
url "sftp://repo.mycompany.com:22/repo"
credentials {
username "user"
password "password"
}
}
}
使用s3协议的仓库
access key/secret key/session token or Environment variables
repositories {
maven {
url "s3://myCompanyBucket/maven2"
credentials(AwsCredentials) {
accessKey "someKey"
secretKey "someSecret"
// optional
sessionToken "someSTSToken"
}
}
ivy {
url "s3://myCompanyBucket/ivyrepo"
credentials(AwsCredentials) {
accessKey "someKey"
secretKey "someSecret"
// optional
sessionToken "someSTSToken"
}
}
}
使用gcs(Google cloud storage,谷歌云存储)协议的仓库
default application credentials sourced from well known files, Environment variables etc.
repositories {
maven {
url "gcs://myCompanyBucket/maven2"
}
ivy {
url "gcs://myCompanyBucket/ivyrepo"
}
}