Maven 简介
Maven 是一个基于项目对象模型(POM)的项目管理工具,主要用于 Java 项目的构建、依赖管理和项目信息管理。它简化了构建过程,提供了一种标准化的方式来管理项目结构和依赖关系。
一、依赖进阶
(1)直接依赖和间接依赖
A依赖B,B依赖于C
A和B之间就是直接依赖;
A和C之间就是间接依赖;
依赖关系具有传递性。
(2)依赖的原则
a.路径最短者优先:本身有的依赖为先,直接依赖为次,间接依赖为后
b.路径相同时先声明者优先:这里"声明的先后顺序是指dependcy标签配置的先后顺序。
(3)依赖的排除
在<dependency>中<exclusions>可以排除引入模块的依赖(可以多个)
(4)统一的版本管理
项目中会对很多第三方框架的jar包进行依赖:
- 同一个框架的jar包版本应该是一致的,如果希望修改框架的版本时,每一个jar包的版本都需要进行改变;
- 如果手动一个一个修改配置依赖,太麻烦;可以设置属性标签,定义jar包的版本,然后通过${}表达式来进行引用;
(5)依赖的范围
maven的依赖范围主要是对<dependency>标签中的<scope>标签中的值的设置;
scope的默认依赖范围是compile;
依赖范围分为三种:
a. compile -->对主程序有效,主程序有效,参与打包和部署,传递
b. test -->只对测试程序有效,不传递
c. provided -->对主程序有效,主程序有效,不参与打包和部署,不传递
二、继承
继承:maven中设置一个父工程,其他的工程可以继承这个工程。子工程就可以直接使用父工程中的依赖。
注意:
- 多个子工程中依赖同样的jar包,但是采用test范围;由于test范围没有传递性;所以,每一个工程都需要对test范围的jar包进行单独依赖;
- 而如果希望修改多个工程中所依赖test范围的jar包版本,那么,一个一个项目去修改太麻烦,这时可以应用继承解决。
(1)继承的使用
定义一个父工程,名称为MavenParent,父工程packaging必须是pom
项目的打包类型:pom、jar、war
packing默认是jar类型
<packaging>pom</packaging> ---------> 父类型都为pom类型
<packaging>jar</packaging> ---------> 普通项目打jar包,一般普通项目设置jar
<packaging>war</packaging> ---------> web项目一般都是打war包,web项目的话设置war
在各个子工程中对父工程进行继承
<parent>(写在子工程的pom.xml中)
<groupId>com.sy.maven</groupId>
<artifactId>父工程</artifactId>
<version>1.0-SNAPSHOT</version>
<!--relativePath 的作用是为了找到父级工程的pom.xml;因为子工程需要继承父工程的pom.xml文件中的内容。-->
<relativePath>../父工程/pom.xml</relativePath>
</parent>
一个子工程只能继承一个父工程
三、项目聚合(一键安装)
聚合:如果有多个工程需要安装,一个一个工程进行安装,太麻烦了;可以利用聚合,将多个工程管理起来,实现一键安装。(也就是将一个父工程进行安装,其他被聚合的工程也同时进行安装)
聚合的作用:
可以通过编译父工程实现将所有的子工程一起编译。
<!--在父工程中聚合所有的子工程-->
<modules>
<module>../子工程</module>
<module>../子工程</module>
<module>../子工程</module>
</modules>
小结:
继承和聚合工程通常使用在分布式多模块项目开发时候,一般的小项目使用的还是比较少。
四、创建Maven版web工程
方法一:
- 创建Maven的Web工程,需要选择
packaging的值为war - 安装普通普通Maven项目转web项目的插件
JBLJavaToWeb, 找到后直接安装 - 先创建一个jar版的maven工程
- 把创建好的工程转为javaweb项目
方法二:
创建javaWebMaven(Archetype-->webapp)
五.配置Tomcat
运行方式两种:
(1). 使用本地的tomcat
(2). 使用tomcat插件
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--端口控制-->
<port>8080</port>
<!--项目路径控制意味着http://localhost:8080/abc-->
<path>/javaWebMaven</path>
<!--编码-->
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>

523

被折叠的 条评论
为什么被折叠?



