1、基本配置
在pom配置文件中,GAV(groupId,artifactId,version)是必须得
groupId跟artifactId统称为项目坐标,为了保证项目唯一性,查找项目模块时,也是通过这两个ID来查找
groupId
含义:组织标识,定义了项目属于哪个组,风向标,坐标
用途:此名称则是本地仓库中的路径,列如:otowa.user.dao,在M2_REPO目录下,将是: otowa/user/dao目录
命名规范:项目名称,模块,子模块
groupId可以分为多段,例如com.baidu,com.baidu。第一段一般可以写公司的域,第二段一般可以写公司的全称。
artifactId
含义:项目名称也可以说你所模块名称,定义当面Maven项目在组中唯一的ID
用途:例如:user-dao,在M2_REPO目录下,将是:otowa/user/dao/user-dao目录
命名规范:唯一就好
artifactId可以理解为模块名称或者项目名称
例如miniparam、member、order等
version
含义:项目或者模块的版本号
用途:用于记录软件开发的版本
命名规范:1.0.0,即为主版本号+子版本号+阶段版本号
主版本号:当功能模块有较大的变动,比如增加了多个模块或者整体架构发生了变化
子版本号:当功能有一定的增加或者变化,比如修改了一些方法或者逻辑
阶段版本号:一般是修复bug或者一些小的变动,要经常发布修订版
日期版本号:用于记录修改项目的当前日志
扩展:
后面还有:日期版本号+希腊字母版本号
日期版本号用于记录项目修改的当前日期
希腊字母版本号用于记录当前软件处于哪个开发版本,如beta版,dev版等
packaging
项目打包的格式,包括pom、jar、maven-plugin、ejb、war、ear、rar、par
pom:pom是最简单的打包类型,里面没有java代码,也不执行任何代码,只是为了聚合工程或者传递依赖,生命周期:package
->install->depoly
jar:内部调用或者作为服务使用
这种打包方式意味着在maven build时会将这个项目中的所有java文件都进行编译形成.class文件,且按照原来的java文件层级结构放置,最终压缩为一个jar文件。
当我们使用mvn install命令的时候,能够发现在项目中与src文件夹同级新生成了一个target文件夹,这个文件夹内的classes文件夹即为刚才提到的编译后形成的文件夹。如下图所示,这是我自己的项目生成的target文件夹,而最下方的jar文件即为此文件夹的压缩版本。
war:需要部署的项目
maven项目的部署过程
先创建一个maven的web项目,对该项目打包成war包 ,然后部署到tomcat或者resin上,然后对该项目的class文件打包成jar包,放到项目的lib目录下,这样,项目就可以直接在lib下面的该 jar包下的class文件。
1、父pom的packaging必须为:pom
2、子模块的packaging不设置的情况下默认为:jar
2、POM之间的关系,继承、聚合和依赖
maven在
1、通过modules标签来整合编译的顺序,引入依赖是用最短路径原则,例如:a.b.c-》a.b.c.d。路径长度相同时,放前面的先编译,例如a.b.c-》a.b.d,因此一般把更加底层的服务放在更先的位置优先加载
2、子项目可以共用父pom引入的依赖,可以把共用的依赖写到父级配置中,以便统一管理