Gradle(5)-仓库类型

2020-07-27  本文已影响0人  卡门001

仓库类型

Flat directory repository

将项目中的文件目录作为仓库。

Maven Central repository

是一个流行的仓库,拥有大量的Java项目开源库。

JCenter Maven repository

是一个所有流行开源软件手工制品的最新集合的仓库。

Google Maven repository

谷歌仓库拥有安卓特定的手工制品,包括Android SDK

Local Maven repository

有利于团队将一个项目发布到本地仓库,并在另一个项目中使用该手工制品。

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

repositories {
    ivy {
        url "http://repo.mycompany.com/repo"
    }
}
repositories {
    ivy {
        url "http://repo.mycompany.com/repo"
        layout "maven"
    }
}

有效的命名布局值:"gradle" (默认),"maven","ivy","patter"。

repositories {
    ivy {
        url "http://repo.mycompany.com/repo"
        patternLayout {
            artifact "[module]/[revision]/[type]/[artifact].[ext]"
        }
    }
}
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"
    }
}
上一篇 下一篇

猜你喜欢

热点阅读