1)mavan项目的基本结构
src/main/java->放置源代码
src/main/resources->源代码的资源文件src/test/java->放置测试代码
src/test/resources->放置测试代码资源文件
2)maven的常用命令
mvn clean -->表示运行清理操作(会默认把target文件夹中的数据清理)
mvn clean compile-->表示先运行清理之后运行编译,会见代码编译到target文件夹中
mvn clean test-->运行清理和测试
mvn clean package-->运行清理和打包
mvn clean install-->运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用
mvn clean deploy-->运行清理和发布(发布到私服上面)
3)maven的版本标示
Group Id :定义了项目是属于哪个maven分组。一般采用包名+组名,即公司的域名的倒写+加组名,也可以理解为项目名。
Artifact Id: 项目名称在maven中的唯一Id。一般是项目名称 - 模块名,也可以理解为项目模块。
Version:版本号
4)maven的依赖
1、所有的依赖都是通过GAV坐标来进行存储的,这里的GAV是指groupId、artifactId、version
2、有一些网上的仓库提供了坐标的查询。例如http://mvnrepository.com
3、通过<dependencies>标签设置依赖
4、maven首先会在本地仓库查询如果本地仓库没有,就去中央仓库查询(要配置镜像)
5)maven的依赖范围
1、test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
2、compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
3、provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
4、runtime在运行的时候依赖,在编译的时候不依赖
默认的依赖范围是compile
6)传递性依赖
模块A依赖模块C 模块B依赖A,那么模块B依赖模块C,这里只对compile范围有效
例如<scope>test<scope>是不会进行依赖传递
7)maven的聚合
设置packaging设置为pom,然后把模块名加进来
8)maven的继承
把父模块的GAV和pom路径加进来即可
一般在父模块中定义管理依赖
然后再子模块中写
<dependencies>
<dependency>
这里写你自己想要从父类继承的依赖模块的groupId和artifactId
</dependency>
</dependencies>
这样便能从父类中挑选你想继承的依赖模块
9)maven的属性定义
然后写${junit.version}进行使用
10)maven的版本管理
总版本号.分支版本号.小版本号-里程碑版本
总版本号的变动一般表示框架的变动
分支版本号:一般表示增加了一些功能
小版本号:在分支版本上面进行bug的修复
里程碑:SNAPSHOT-->alpha-->beta-->release-->GA
user0.0.1-SNAPSHOT-->user0.0.1-Release--->user1.0.0SHAPSHOT -->user1.0.0-Rlease