一、什么是Maven? 有什么用?
1.Maven的作用
i.增加第三方Jar (commons-fileupload.jar commons-io.jar)
ii.jar包之间的依赖关系 (commons-fileupload.jar 自动关联下载所有依赖的Jar,并且不会冲突)
b.将项目拆分成若干个模块
2.Maven概念:
是一个基于Java平台的 自动化构建工具
make-ant-maven-gradle
3.常用命令
清理(clean):删除编译的结果,为重新编译做准备。clean
编译(compile):java->class compile
测试(test): 针对于 项目中的关键点进行测试,亦可用 项目中的测试代码 去测试开发代码;test
报告:将测试的结果 进行显示
打包(package): 将项目中包含的多个文件 压缩成一个文件, 用于安装或部署。 (java项目-jar、web项目-war)package
安装(install):将打成的包 放到 本地仓库,供其他项目使用。 install
部署(deploy):将打成的包 放到 服务器上准备运行。
二、Maven操作
1) 依赖:
i.jar包依赖:(配置pom.xml文件)
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
</dependency>
</dependencies>
ii.依赖其他maven项目:
有两个Maven项目 一个为A ,一个为B,B依赖A
1.首先将A通过package打包为jar,随后通过install将A 放入到自己的本地厂库中。
2.通过配置B的pom.xml引入依赖:(g a v)
<dependencies>
<dependency>
<groupId>org.skh.maven</groupId>
<artifactId>A</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
3.update B项目。
2) 继承
1.建立父工程: 父工程的打包方式为pom 而不再是jar形式
2.在父工程的pom.xml中编写依赖:
<dependencyManagement>
<dependencies>
<dependency>
3.子类:
<!-- 给当前工程 继承一个父工程:1加入父工程坐标gav 2当前工程的Pom.xml到父工程的Pom.xml之间的 相对路径 -->
<parent>
<!-- 1加入父工程坐标gav -->
<groupId>org.lanqiao.maven</groupId>
<artifactId>B</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 2当前工程的Pom.xml到父工程的Pom.xml之间的 相对路径 -->
<relativePath>../B/pom.xml</relativePath>
</parent>
4.在子类中 需要声明 :使用那些父类的依赖
<dependency>
<!-- 声明:需要使用到父类的junit (只需要ga) -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
3)聚合操作:
tips:Maven将一个大工程拆分成 若干个子工程(子模块)
聚合可以将拆分的多个子工程 合起来
1.Maven项目能够识别的: 自身包含、本地仓库中的,Maven2依赖于Maven1,则在执行时:必须先将Maven1加入到本地仓库(install),之后才能执行Maven2
以上 前置工程的install操作,可以交由“聚合” 一次性搞定。。。
聚合的使用:
2.在一个总工程中配置聚合: (聚合的配置 只能配置在(打包方式为pom)的Maven工程中)
<modules>
<!--项目的根路径相对于当前总项目的pom文件 -->
<module>../Maven1</module>
<module>../Maven2</module>
</modules>
配置完聚合之后,以后只要操作总工程,则会自动操作 改聚合中配置过的工程
三、部署发布Maven项目:
1.建立Maven项目。打包形式为war,不是jar,也不是pom!
随后将写好的项目进行package操作,生成war文件
随后将其放入到tomcat的webapps下,启动startup.bat。最后便可以在浏览器访问自己的项目。