文章目录
一、前言
在开发大型项目时,项目模块太多,不方便维护,其他项目不能复用我们编写的工具类。所以就有了项目分模块设计与开发
二、分模块设计
1.含义
将项目按照功能分成若干模块
2.进行分模块设计的原因
方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享
3.注意事项
分模块设计需要先针对模块功能进行设计,再进行编码。不会先将
工程开发完毕,然后进行拆分
4.设计流程
1. 新建一个Maven项目作为父工程
由于父工程不需要代码编写所以删掉src,并且打包方式要设置为pom
三种打包方式:
jar:普通模块打包,springboot项目基本都是jar包(内嵌tomcat运行)
war:普通web程序打包,需要部署在外部的tomcat服务器中运行
pom:父工程或聚合工程,该模块不写代码,仅进行依赖管理
2. 在父工程untitled项目中根据功能新建子工程模块
例如:工具类模块、实体类模块、某业务功能模块
父项选择untitled
三、Maven模块之间的继承、版本锁定和聚合
1. 继承
-
继承就是把子工程共有的依赖放到到父工程中,防止每个子工程都要导入一遍一样的依赖,不方便依赖的管理和升级版本
-
作用:简化依赖配置、统一管理依赖
-
实现:
<parent> ... </parent>`
-
因为项目是基于spring开发的每个模块都有一个父工程,那么就需要在untitled父工程上加上,而其他子工程会继承他的配置
<parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.7.3</version> </parent>
-
如果在子工程创建时选择了父工程那么就不再需要设置,子工程pom文件会自动的带上
-
实现继承关系后就可以在父工程中配置各个工程共有的依赖(子工程会自动继承父工程的依赖)
-
若父子工程都配置了同一个依赖的不同版本,以子工程的为准。
2.版本锁定
- 作用:为了统一管理各个依赖的版本
- 实现:在maven中,可以在父工程的pom文件中通过来统一管理依赖版本
- 子工程引入依赖时,无需指定〈version>版本号,父工程统一管理。变更依赖版本,只需在父工程中统一变更。
3.聚合
4. 继承与聚合
四、私服
- 私服是架设在公司局域网内部的一台服务器,是一种特殊的远程仓库,用来代理位于外部的中央仓库,用于解决团队内部的资源共享与资源同步问题。
1.使用私服的原因
- 为了各个项目组之间能够共享自己编写的依赖,即团队之间资源的共享
- 设立私服后依赖的查找顺序:本地仓库、私服、中央仓库
2.资源上传和下载
- 上传资源时要先把资源下载到本地仓库
- 使用私服,需要在maven的settings.xmi配置文件中,做如下配置:
- 需要在servers标签中,配置访问私服的个人凭证(访问的用户名和密码)
<!-- releases仓库-->
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin</password>
</server>
<!-- snapshots仓库-->
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
- 在mirrors只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)
<mirror>
<id>maven-public</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.150.101:8081/repository/maven-public/</ur1>
</mirror>
- 需要在profiles 中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用
<profile>
<id>allow-snapshots</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>maven-public</id>
<url>http://192.168.150.101:8081/repository/maven-public/</url>
<!-- releases仓库-->
<releases>
<enabled>true</ enabled>
</releases>
<!-- snapshots仓库-->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
- 如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)
<distributionManagement>
<!-- release版本的发布地址-->
<repository>
<id>maven-releases</id>
<url>http://192.168.150.101:8081/repository/maven-releases/</url>
</repository>
<!-- snapshot版本的发布地址-->
<snapshotRepository>
<id>maven-snapshots</id>
<url>http://192.168.150.101:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
- 发布项目,直接运行deploy生命周期即可(发布时,建议跳过单元测试)
- 启动本地私服