一.Maven项目的继承
1.继承一般出现在类与类之间的关系中,但是在项目中也存在着这样的继承关系.我们知道在创建一个maven项目的时候,需要给项目配置需要的依赖,maven的继承主要是为了统一依赖的版本.
2.在父项目pom.xml中需要统一的依赖用<dependencyManagement>标签.
父项目pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>nz.study</groupId>
<artifactId>Days42MavenParent</artifactId>
<!--指定当前项目为父项目-->
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>MavenSon01</module>
<module>MavenSon02</module>
<module>MavenSon03</module>
<module>MavenSon04Parent</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3.继承的子项目中的pom.xml文件需要添加的依赖需要与母项目中<dependencyManagement>的依赖对应,可以不用写依赖的版本,子项目也可以选择需要的版本,这样的操作类似于继承里的重写.
子项目pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--指定父项目-->
<parent>
<artifactId>Days42MavenParent</artifactId>
<groupId>nz.study</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>MavenSon01</artifactId>
<!--引入需要的依赖-->
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>
二.Maven项目的聚合
1.聚合在java 中是在A对象功能完整需要另外B对象来实现,所以A类中有着B类对象的引用,但是A对象的生命周期结束,B对象依然可以存在,简而言之就两个对象的生命周期不同。当然在maven中,聚合又是为了解决另外一个问题而存在的一种机制。通常我们的项目都是都模块的,而每个模块又是一个 maven项目,所以每次开发完了编译都需要一个一个模块的去执行,这就违背了maven的自动化理念。
2.Maven聚合实现SSM
其实就是将之前项目中的每个部分进行模块化处理,分成独立的子项目,子项目之间又会存在着引用的关系.
Maven聚合SSM.png
项目的内容与之前相比,没有什么的新的内容,主要是将Pojo,Dao,Service,Web划分成各个子项目,在母项目中创建子项目,子项目中存在着一写引用关系,需要在<dependency>标签中添加依赖.Dao依赖Pojo与数据库交互,Service依赖Dao进行数据传输,Web依赖Service进行数据处理.
这是我在千锋线上学习的第42天,加油!!!