为什么要学习Maven
- 项目中的jar包杂乱,若要手动jar包,只能依靠jar命令去打包。
- jar包的版本管理困难
Maven的作用
Maven可以将一个大工程拆分成若干个子工程(子模块),并通过聚合将拆分的多个子工程结合起来,在总工程的pom.xml文件中配置如下:1
2
3
4
5
6
7
8
9<!-- 一定要配置子工程pom.xml的相对路径 -->
<modules>
<module>
../Maven1
</module>
<module>
../Maven2
</module>
</modules>Maven常见的命令
- mvn -compile 只编译main目录中的Java文件
- mvn -test 编译test目录中的Java文件
- mvn -package 将项目打包成 jar/war包,存入target目录
- mvn -install 将开发的模块放入本地仓库,供其他模块使用
- mvn -clean 删除target目录(不删除仓库的目录)
PS: 运行mvn命令,需要在pom.xml文件所在的目录运行
Maven Dependency 修改便捷方式
先在properties中设置变量以及变量所对应的版本号,再在dependency的version中应用变量(类似于jstl表达式)1
2
3
4
5
6
7
8
9
10
11
12<properties>
<x>4.0</x>
</properties>
<dependencies>
<dependency>
<groundId></groundId>
<artifactId></artifactId>
<version>${x}</version>
</dependency>
</dependencies>
Maven工程继承使用
若A->B,A继承于B
A->pom.xml1
2
3
4
5
6
7
8<parent>
<!-- 1加入父工程B的坐标gav -->
<groundId>org.Pvtwen.maven</groundId>
<artifactId>B</artifactId>
<version></version>
<!-- 2当前工程的pom.xml到父工程的pom.xml之间的相对路径 若A和B在同一级目录下-->
<relativePath>../B/pom.xml</relativePath>
</parent>
多个Maven项目之间的依赖
- 将被依赖的项目通过mvn -install命令安装到本地仓库
- 将被依赖项目的gav写入依赖项目的pom.xml中
- 如果是在同一个package中(例如:org.lanqiao.maven),可以不用导包
Maven中的依赖传递:A.jar->B.jar->C.jar,如果A->C.jar , 则B与C的关系必须是compile,例如 C为Junit,则B.jar的pom.xml配置信息为
1
2
3
4
5
6<dependency>
<groundId>Junit</groundId>
<artifactId></artifactId>
<version></version>
<scope>compile</scope>
</dependency>为什么Maven会用到xml文件作为配置文件

将eclipse中的项目打包成war包之后运行
将war包放入tomcat中webapps目录下,startup.bat运行项目