Maven高级
分模块设计与开发
未分模块设计不方便项目的维护和管理、项目中的通用组件难以复用
分模块设计就是将项目按照功能/结构拆分成若干个子模块,方便项目的管理维护、拓展,也方便模块键的相互调用、资源共享。
模块拆分实现
创建maven模块,存放实体类和工具类,注入实现功能需要的依赖,删除原有的包,模块注入依赖
继承与聚合
继承实现
在真实的企业开发中,都是先设计好模块之后,再开始创建模块,开发项目。
Maven打包方式:
-
jar:普通模块打包,springboot项目基本都是jar包(内嵌tomcat运行)
-
war:普通web程序打包,需要部署在外部的tomcat服务器中运行
-
pom:父工程或聚合工程,该模块不写代码,仅进行依赖管理
1,生成maven模块为父类工程,父类继承SpringBoot ,修改打包的方式为pom。
//继承父类SpringBoot <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.itheima</groupId> <artifactId>tlias-parent</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> //修改打包方式
2,子类继承父类
<parent> <groupId>com.itheima</groupId> <artifactId>tlias-parent</artifactId> <version>1.0-SNAPSHOT</version> <relativePath>../tlias-parent/pom.xml</relativePath>//声明路径 </parent> <groupId>com.itheima</groupId>//继承父类为冗余可以删除 <artifactId>tlias-utils</artifactId> <version>1.0-SNAPSHOT</version>
3,父类添加公共依赖(子工程会自动继承父工程的依赖)
版本锁定
在maven中,可以在父工程的pom文件中通过 <dependencyManagement>
来统一管理依赖版本。
父工程:
<!--统一管理依赖版本--> 定义版本让子类继承 <dependencyManagement> <dependencies> <!--JWT令牌--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> </dependencies> </dependencyManagement>
子工程:
<dependencies> //继承父类可省略版本 <!--JWT令牌--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> </dependency> </dependencies>
属性配置
自定义属性
<properties> <lombok.version>1.18.24</lombok.version> </properties>
引用属性
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency>
**<dependencyManagement>**
与 **<dependencies>**
的区别是什么?**
-
<dependencies>
是直接依赖,在父工程配置了依赖,子工程会直接继承下来。 -
<dependencyManagement>
是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需依赖(无需指定版本)
聚合
-
聚合:将多个模块组织成一个整体,同时进行项目的构建。
-
聚合工程:一个不具有业务功能的“空”工程(有且仅有一个pom文件) 【PS:一般来说,继承关系中的父工程与聚合关系中的聚合工程是同一个】
-
作用:快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建即可)
<!--聚合其他模块--> <modules> <module>../tlias-pojo</module> <module>../tlias-utils</module> <module>../tlias-web-management</module> </modules>
继承与聚合对比
作用:
聚合用于快速构建项目
继承用于简化依赖配置、统一管理依赖
相同点:
聚合与继承的pom.xml文件打包方式均为pom,通常将两种关系制作到同一个pom文件中
聚合与继承均属于设计型模块,并无实际的模块内容
不同点:
聚合是在聚合工程中配置关系,聚合可以感知到参与聚合的模块有哪些
继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
私服配置
第一步配置:在maven的配置文件中配置访问私服的用户名、密码。
第二步配置:在maven的配置文件中配置连接私服的地址(url地址)。
第三步配置:在项目的pom.xml文件中配置上传资源的位置(url地址)。
配置好了上述三步之后,要上传资源到私服仓库,就执行执行maven生命周期:deploy。
注意点:
解压: 资料中提供的压缩包 apache-maven-nexus.zip
进入目录: apache-maven-nexus\nexus-3.39.0-01\bin
启动服务:双击 start.bat
访问服务:localhost:8081
私服配置说明:将上述配置私服信息的 192.168.150.101 改为 localhost