目录
一、分模块设计与开发
1.1 分模块设计
1.2 分模块设计-实践编辑
1.2.1 复制老项目改为spring-boot-management
1.2.2 新建maven模块runa-pojo
1.2.2.1 将原项目pojo复制到runa-pojo模块
1.2.2.2 runa-pojo引入新依赖
1.2.2.3 删除原项目pojo包
1.2.2.4 在spring-boot-management(原项目)引入runa-pojo依赖
1.2.3 新建maven模块runa-utils
1.2.3.1 将原项目utils复制到runa-utils模块
1.2.3.2 runa-utils引入依赖
1.2.3.3 spring-boot-management删除依赖
1.2.3.4 删除原项目utils包
1.2.3.5 在spring-boot-management(原项目)引入runa-utils依赖
1.2.4 启动服务-测试
1.3 总结
二、继承与聚合
2.1 继承
2.1.1 新建父工程模块runa-parent
2.1.2 设置runa-parent打包方式为pom
2.1.3 设置runa-parent父工程未springboot
2.1.4 删除 runa-parent的src
2.1.5 修改spring-boot-management父工程为runa-parent
2.1.6 删除 spring-boot-management提示异常的标签
2.1.7 在runa-pojo与runa-utils设置父工程和删除
2.1.8 在父工程runa-parent配置共有依赖
2.2 继承实现总结
2.3 版本锁定
2.3.1 将runa-parent管理版本(子工程)
2.3.2 runa-utils依赖版本删除
2.3.3 自定义属性
2.3.3.1 runa-parent设置版本
2.3.3.2 总结
2.2 聚合
2.2.1 runa-parent添加
2.2.2 runa-parent maven生命周期进行打包等
2.3 总结
三、私服
3.1 介绍
3.2 资源上传与下载
3.3 私服配置
3.3.1 需要在 servers 标签中,配置访问私服的个人凭证(访问的用户名和密码)
3.3.2 在 mirrors 中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)
3.3.3 需要在 profiles 中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用
3.3.4 如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)
3.3.5 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)
3.3.6 启动本地私服
3.4 上传maven生命周期-deploy
3.5 下载
前言:
分模块设计开发是一种软件开发方法论,它将一个大型的软件系统按照不同的功能模块进行划分,每个模块独立设计、独立开发、独立测试、独立部署和独立维护。这有助于降低整个系统的复杂度,提高系统的可维护性和可扩展性。
分模块设计开发一般包含以下步骤:
1. 确定系统的功能模块:将整个系统划分成多个不同的功能模块,如登录模块、订单模块、支付模块等。
2. 设计每个模块的接口:在每个模块内部,设计该模块与其他模块的接口,包括输入输出参数、数据结构等。
3. 各个模块的独立开发:分别对每个模块进行独立的开发,每个开发人员只负责一个模块。
4. 集成测试:在开发完成后,对各个模块进行集成测试,测试各个模块之间的接口是否正常,是否能够协同工作。
5. 系统测试:对整个系统进行测试,模拟实际运行环境下的各种场景,保证系统整体的稳定性和可用性。
6. 部署上线:将整个系统部署到线上环境中,进行实际的运行。
分模块设计开发的优点:
1. 降低系统复杂度:将整个系统分模块开发,让开发人员专注于模块间的关系和模块内的逻辑,从而降低系统复杂度。
2. 提高可维护性:每个模块独立开发,修改某个模块不影响其他模块的使用,方便维护和升级。
3. 提高可扩展性:如果需要增加新的功能,只需要增加一个新的模块,不会影响到其他模块的运行。
4. 提高开发效率:多个开发人员可以并行开发不同的模块,加快开发进度。
一、分模块设计与开发
1.1 分模块设计
1.2 分模块设计-实践
1.2.1 复制老项目改为spring-boot-management
新建文件夹spring_boot_project01
将之前方面复制过来改成 spring-boot-management
打开项目spring-boot-management 使用Rename 修改启动类等
1.2.2 新建maven模块runa-pojo
1.2.2.1 将原项目pojo复制到runa-pojo模块
1.2.2.2 runa-pojo引入新依赖
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
1.2.2.3 删除原项目pojo包
略
1.2.2.4 在spring-boot-management(原项目)引入runa-pojo依赖
<dependency>
<groupId>com.runa</groupId>
<artifactId>runa-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
1.2.3 新建maven模块runa-utils
1.2.3.1 将原项目utils复制到runa-utils模块
1.2.3.2 runa-utils引入依赖
<!--JWT令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- 阿里云OSS依赖-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>
<!-- web 起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.1.2</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
1.2.3.3 spring-boot-management删除依赖
<!--JWT令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- 阿里云OSS依赖-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>
1.2.3.4 删除原项目utils包
略
1.2.3.5 在spring-boot-management(原项目)引入runa-utils依赖
<dependency>
<groupId>com.runa</groupId>
<artifactId>runa-utils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
1.2.4 启动服务-测试
1.3 总结
二、继承与聚合
2.1 继承
2.1.1 新建父工程模块runa-parent
2.1.2 设置runa-parent打包方式为pom
<packaging>pom</packaging>
2.1.3 设置runa-parent父工程未springboot
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2.1.4 删除 runa-parent的src
略
2.1.5 修改spring-boot-management父工程为runa-parent
<parent>
<groupId>com.runa</groupId>
<artifactId>runa-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../runa-parent/pom.xml</relativePath>
</parent>
2.1.6 删除 spring-boot-management提示异常的标签
<groupId>com.runa</groupId>
2.1.7 在runa-pojo与runa-utils设置父工程和删除<groupId>
2.1.8 在父工程runa-parent配置共有依赖
将子工程共有的依赖剪切到父工程
2.2 继承实现总结
2.3 版本锁定
2.3.1 将runa-parent管理版本(子工程)
<!-- 统一管理版本标签-->
<dependencyManagement>
<dependencies>
<!--JWT令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- 阿里云OSS依赖-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>
<!-- web 起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.1.2</version>
</dependency>
</dependencies>
</dependencyManagement>
2.3.2 runa-utils依赖版本删除
<dependencies>
<!--JWT令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
<!-- 阿里云OSS依赖-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
</dependency>
<!-- web 起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2.3.3 自定义属性
2.3.3.1 runa-parent设置版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lombok.version>1.18.24</lombok.version>
</properties>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
其他依次设置
<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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.runa</groupId>
<artifactId>runa-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>runa-parent</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lombok.version>1.18.24</lombok.version>
<jjwt.version>0.9.1</jjwt.version>
<aliyun.oss.version>3.15.1</aliyun.oss.version>
<jaxb.version>2.3.1</jaxb.version>
<activation.version>1.1.1</activation.version>
<jaxb.runtime.version>2.3.3</jaxb.runtime.version>
<!-- 他好像不需要版本管理 因为他是spring-boot,runa-parent本身就是继承springboot-->
<spring-boot-starter-web>3.1.2</spring-boot-starter-web>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
<!-- 统一管理版本标签-->
<dependencyManagement>
<dependencies>
<!--JWT令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!-- 阿里云OSS依赖-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun.oss.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>${activation.version}</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jaxb.runtime.version}</version>
</dependency>
<!-- web 起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 下面这个都可以删除-->
<version>${spring-boot-starter-web}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2.3.3.2 总结
2.2 聚合
2.2.1 runa-parent添加
<!-- 聚合其他模块-->
<modules>
<module>../runa-pojo</module>
<module>../runa-utils</module>
<module>../spring-boot-management</module>
</modules>
<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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.runa</groupId>
<artifactId>runa-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<!-- 聚合其他模块-->
<modules>
<module>../runa-pojo</module>
<module>../runa-utils</module>
<module>../spring-boot-management</module>
</modules>
<name>runa-parent</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lombok.version>1.18.24</lombok.version>
<jjwt.version>0.9.1</jjwt.version>
<aliyun.oss.version>3.15.1</aliyun.oss.version>
<jaxb.version>2.3.1</jaxb.version>
<activation.version>1.1.1</activation.version>
<jaxb.runtime.version>2.3.3</jaxb.runtime.version>
<!-- 他好像不需要版本管理 因为他是spring-boot,runa-parent本身就是继承springboot-->
<spring-boot-starter-web>3.1.2</spring-boot-starter-web>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
<!-- 统一管理版本标签-->
<dependencyManagement>
<dependencies>
<!--JWT令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!-- 阿里云OSS依赖-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun.oss.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>${activation.version}</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jaxb.runtime.version}</version>
</dependency>
<!-- web 起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 下面这个都可以删除-->
<version>${spring-boot-starter-web}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2.2.2 runa-parent maven生命周期进行打包等
2.3 总结
三、私服
3.1 介绍
3.2 资源上传与下载
3.3 私服配置
私服配置说明
访问私服:http://192.168.150.101:8081
访问密码:admin/admin
下载地址
使用私服,需要在maven的settings.xml配置文件中,做如下配置:
3.3.1 需要在 servers 标签中,配置访问私服的个人凭证(访问的用户名和密码)
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
3.3.2 在 mirrors 中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)
<mirror>
<id>maven-public</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.150.101:8081/repository/maven-public/</url>
</mirror>
3.3.3 需要在 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>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
3.3.4 如果需要上传自己的项目到私服上,需要在项目的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>
3.3.5 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)
3.3.6 启动本地私服
1、解压: apache-maven-nexus.zip
2、进入目录: apache-maven-nexus\nexus-3.39.0-01\bin #(注意解压不要有中文路径)
3、启动服务:双击 start.bat
4、访问服务:localhost:8081
5、私服配置说明:将上述配置私服信息的 192.168.150.101 改为 localhost
3.4 上传maven生命周期-deploy
3.5 下载
新项目配置依赖
要验证下载,先将本地仓库的删除掉文章来源:https://www.toymoban.com/news/detail-677390.html
文章来源地址https://www.toymoban.com/news/detail-677390.html
到了这里,关于[JavaWeb]【十四】web后端开发-MAVEN高级的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!