Maven为所有的项目在pom引入了坐标,基于坐标机制可以唯一定位一个项目。
构件:在Maven中,任何依赖(jar包,tomcat等),或项目(自己打包的jar,war等)输出都可成为构件。每个构件都有自己的唯一标识(唯一坐标),由groupId,artifactId,和version等信息构成,由此,Maven就可以对构件进行版本控制,管理。
根据前几篇的学习,坐标包括哪些要素,已经呼之欲出了。
<groupId>公司网址反写.项目名</groupId>
<artifactId>项目名-模块名</artifactId>
<version>大版本.分支版本.小版本号+版本类型</version>
<packaging>打包方式</packaging>
- groupid: 定义当前Maven项目所属的实际项目。因为很多时候,一个实际的项目很可能有多个模块组成,例如org.springframework项目就有spring-core、spring-beans、spring-context等模块。
- artifactId: 定义当前Maven项目在所属实际项目中的具体模块名称。如spring-core为该具体模块的名称。
- version: 定义Maven项目当前的版本。
- packaging: 打包方式,包括jar、war、pom等。
- classifier: 定义构建输出的一些附属构建。例如,我们生成了一个构建a.jar,我们希望在构建的时候也能生成一个与a.jar对应的其源码jar包,为a-sources.jar。则a-sources.jar即为附属构建,sources就是该附属构建的classifier。需要注意的是:不能在项目中直接定义classifier,因为附属构建不是默认生成的,需要附加的插件才能生成。请参考: Maven中maven-source-plugin,maven-javadoc-plugin插件的使用
下面呢,继续学习Maven仓库,Maven仓库分为本地仓库、中央仓库和镜像仓库。本地仓库就是我们电脑上的仓库,中央仓库是Maven全球中心仓库,镜像仓库则为内容和中央仓库一样的另一个好像镜子似的仓库。
我相信,有很多小伙伴用Maven的中央仓库,下载依赖的jar包很慢,那么,该怎么办呢?放心,镜像仓库会帮助我们解决这个问题。
- 找到maven路径中的【conf】文件夹,有个settings.xml文件,打开找到<mirrors></mirrors>标签,在里边添加
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
这样,阿里云镜像就配置好了,以后下载任何jar包都会很快了~
- 接下来,假如我们想把本地仓库路径修改到别的盘呢?因为maven默认的仓库路径是C盘,一旦重装系统,C盘的东西就没了,所以相对来说,把仓库安放在别的磁盘上更好。
还是settings.xml文件,找到【<localRepository>/path/to/local/repo</localRepository>】这一行,复制放在不是注释的行里,并将标签内容改成其他磁盘的路径。例如:
然后验证是否ok,打开cmd窗口随便切换一个之前测试的demo,进行clean掉target目录,并compile这个demo。
稍等一两秒,cmd里显示BUILD SUCCESS之后,我们找到新仓库文件夹:
好了,我们更改后的新仓库成功了!