gradle学习之旅(十一) 使用和配置仓库

仓库

gradle对现有仓库支持如下

  • Maven 仓库
    本地文件系统或远程服务器中的Maven仓库,或者预配置的Maven Central
  • Ivy 仓库
    本地文件系统或远程服务器中的Ivy仓库,具有特定的结构模式
  • 扁平的目录仓库
    本地文件系统的仓库或者远程目录仓库,没有元数据支持

仓库API

  • 项目中定义仓库的关键是Repositoryhandler接口,它提供了添加各种类型仓库的方法。
  • 这些方法将会在repositories配置块中被调用,当声明多个仓库时,依赖管理器在下载依赖及其元数据时会按照声明的顺序来检查仓库

Maven仓库

Maven仓库的类库以jar文件形式表现。元数据用xml表示,并使用POM文件描述了类库相关信息及其传递性依赖。
RepositoryHandler接口提供了两个方法来定义Maven仓库。mavenCentral()方法用来将Maven Central添加到repositories中,mavenLocal()方法用来在文件系统中关联一个本地的Maven仓库。

添加预配置的Maven Central 仓库

Maven Central的URL是 http://repo1.maven.org/maven2,gradle提供了一种快捷的方法来声明之,而不必每次写URL。

repositories {
    mavenCentral()
}

添加预配置的Maven Local仓库

repositories {
    mavenLocal()
}
  • 默认在<USER_HOME>/.m2/repository目录下是可用的

添加一个自定义的Maven仓库

首先被添加的仓库要遵循标准的工件存储模式,其次仓库可以被正常访问。Gradle API支持两种方式来配置一个自定义仓库:maven() 和 mavenRepo()。

repositories{
    maven {
        name 'Company Maven Repository'
        url 'http://XXXXXXXXX'
    }
}

其余的可用的配置选择可以查看文档

Ivy仓库

Maven仓库中的工件必须以一种标准的布局存储,任何结构偏差都可能导致依赖关系发生错误。Ivy仓库可自定义布局,在Ivy仓库中,依赖元数据被储存在ivy.xml文件中。声明一个Ivy仓库需要除了需要定义URL外,还需要声明工件和元数据的布局模式

repositories{
    ivy{
        url 'http://XXXXXX'
        layout 'pattern', {
            artifact '[organisation]/[module]/[revision]/[artifact]-[revision].[ext]'
            ivy '[organisation]/[module]/[revision]/ivy-[revision].xml'
        }
    }
}

flat目录仓库

最基本的仓库形式,只包含JAR文件没有元数据。
语法如下:

repositories {
    flatDir(dir: "$dirString" , name: "$nameString")
}

声明依赖时不可以声明group属性

dependencies{
    compile name: "$nameString" , version: "$versionString"
    compile ":$nameString:$versionString"
}
posted @ 2017-12-15 15:09  The_shy  阅读(600)  评论(0编辑  收藏  举报