由于自己是从Android转自动化测试,所以以前从来没有接触过Maven项目,虽然刚进公司不久就开始做项目,但是maven还是仅限于用,只知其一,不知其二,所以打算将Maven系统的学习下,以此记录,也算是加强自己的知识
1. maven多模块管理 方式一
也就是父工程和子工程的关系,其实就是子工程的pom继承父工程的pom。如下图,注意选择父工程,则GroupId和version已经指定好,不需要我们再去写,因为我们是继承了父工程
父工程的要求:1 删除src文件 2 packaging标签设置为pom,如果没有packaging标签,默认的打包方式是jar
父工程添加的依赖,子模块会无条件添加,保证子模块引入的Pom都是相同的。但是这样的话,子模块会引入一些不需要的dependency,很多余。所以在父pom里面引入dependencyManagement. 如图三,则在子工程,如图四当中引入的时候,我们可以不用写version,默认使用的是父工程的版本号,如果在子工程中指定了版本号的话,说明不用父工程的。
父工程的pom中标签properties可以指定各个dependency的版本号,各个dependecy只需要读入properties里面的标签即可统一升级 ,如图五
2 Maven多模块管理 方法二
3 Maven用在什么地方
a A项目依赖B项目的文件
b 解放手动导入jar包的麻烦
4 Maven仓库
本地,第三方(私服仓库)中央仓库(http://repo1.maven.org/maven2)一般使用阿里云镜像
修改中央仓库,可以是公司的私服,也可以阿里云或者maven中央仓库
5 maven编译插件
要和我们的JDK保持一致,项目的jdk版本,可以在setting,compiler里面查看
6 maven修改本地仓库的默认位置
7 mvn常用命令
mvn clean(清理target目录)
mvn compile(编译src目录下的代码)
mvn test-compile(编译test目录下的代码)
mvn test(运行test测试里面的代码)
mvn package(打jar包 命名artifactid-version.jar/war)
mvn install(打成jar包放入本地仓库,被其他项目使用)
mvn生命周期的执行顺序:compile ->test-compile->test->package->install(后面的每个命令都包含前面,举例:当执行了install ,则前面几个步骤都执行了)
mvn site(生成项目描述文档静态页)
8 mvn一键构建
什么是mvn构建,指的是编译,测试,运行,安装,打包整个过程都交给Maven管理
mvn tomcat:run 针对的是web工程的一键发布