Maven仓库
1.1、中央仓库

MavenAnt最大的优势就是有中央仓库。 所有的jar包都存放在远程中央仓库中,在pom.xml配置文件中进行简单的配置即可,需要的时候自动下载,比手动下载方便多了, 尤其是对于WEB项目,动辄就几十个jar包那是家常便饭,要是这些jar包都是手动下载放到各自的项目中, 管理这么多的jar包就很困难。Maven用中央仓库解决了这个难题。

中央仓库也称为远程仓库。

任何人和组织都可以搭建自己的中央仓库。一般大型企业会搭建自己的私有的Maven中央仓库。

Maven中央仓库可以被gradle使用。

1.1.1、常用的Maven中央仓库
名称搜索地址
mevenCentralhttps://repo1.maven.org/maven2
jcenterhttps://jcenter.bintray.com
googlehttps://maven.google.com
jitpackhttps://jitpack.io
gradle-pluginhttps://plugins.gradle.org
spring-libs-releasehttps://repo.spring.io/libs-release
spring-plugins-releasehttps://repo.spring.io/plugins-release
grails-corehttps://repo.grails.org/grails/core
grails-pluginshttps://repo.grails.org/grails/plugins

这些中央仓库除了google之外,在国内没有CDN节点,但是国内很多企业都有他们的开源镜像

设置仓库镜像

1.1.2、私有Maven中央仓库

可以使用阿里云私有Maven仓库, 它是免费的,使用相当简单,不需要配置任何东西,只需要上传jaraar等包即可。

1.1.3、自己搭建Maven中央仓库

除了使用别人为我们搭建好的Maven中央仓库外,我们还可以自己搭建Maven中央仓库。

1.1.3.1、搭建Maven中央仓库的理由
  • 公有的Maven中央仓库通常是需要注册账号、部分仓库的首次审核时间非常的长,这影响我们的使用。
  • 一些Maven中央仓库是国外的,国内也没有他们的镜像,导致在国内使用的时候,下载速度非常慢。所以, 为了加快下载速度和安全的考虑, 一般大型公司在内网搭建自己的Maven中央仓库,这样下载速度非常快,而且安全。
1.1.3.2、服务器的选择

自己搭建Maven中央仓库的话,就需要有服务器,如果你占用的磁盘不是很大的话, 可以使用GitHubGitee等来做为服务器。

第二个选择就是使用云服务器。

1.1.3.3、Maven中央仓库的文件存储结构

实际上,Maven中央仓库就是一个文件存储的地方,这个服务器上的文件能通过HTTP协议进行下载。

1.1.3.4、如何在本地生成Maven中央仓库中的一个依赖

在本地生成Maven中央仓库中的一个依赖的话,有很多的现成工具:

如果您使用Maven管理您的工程的,可以使用

如果您使用gradle管理您的工程的,可以使用

1.1.3.5、在GitHub上搭建开源的Maven中央仓库

我们知道,根据groupIdartifactIdversion就可以下载相应的jar文件。

这是如何做到的呢?显然,仓库是可以有很多的,至少应该配置了仓库地址的。假设仓库地址用${REPOSITORY-URL}表示, 那么,一个库的jar包地址就是:${REPOSITORY-URL}/groupId/artifactId-version.jar

由于groupId通常是域名倒置,需要将字符串里面的.替换为/。比如,对于如下的依赖配置:

<dependency>
    <groupId>com.fpliu</groupId>
    <artifactId>Android-List</artifactId>
    <version>1.0</version>
</dependency>

jar包地址就是:${REPOSITORY-URL}/com/fpliu/Android-List-1.0.jar

在服务器上的存放路径如下:

/
└── com
    └── fpliu
        └── Android-List
            ├── 1.0.0
            │   └── Android-List-1.0.0.jar
            └── maven-metadata.xml

所以,只要按照这种文件组织方法,将文件推送到GitHub上就可以了。

示例

${REPOSITORY-URL}https://raw.githubusercontent.com/${github-username}/${github-repository}/master

1.2、本地仓库

项目根据实际需要会把远程中央仓库中的jar下载到本地,在本地也会建立一个本地中央仓库。 默认的,会在系统的Home目录创建一个.m2/repository隐藏文件夹, 这就是Maven的本地仓库,我们看看:

你要的那些jar包都存放在这里的。