上海市建設(shè)人才網(wǎng)站鄭州網(wǎng)站優(yōu)化推廣
目錄
一、分模塊設(shè)計(jì)與開發(fā)
1.1 分模塊設(shè)計(jì)
?1.2 分模塊設(shè)計(jì)-實(shí)踐?編輯
1.2.1 復(fù)制老項(xiàng)目改為spring-boot-management
1.2.2 新建maven模塊runa-pojo
1.2.2.1 將原項(xiàng)目pojo復(fù)制到runa-pojo模塊
?1.2.2.2 runa-pojo引入新依賴
1.2.2.3 刪除原項(xiàng)目pojo包
1.2.2.4 在spring-boot-management(原項(xiàng)目)引入runa-pojo依賴
1.2.3 新建maven模塊runa-utils
?1.2.3.1 將原項(xiàng)目utils復(fù)制到runa-utils模塊
?1.2.3.2 runa-utils引入依賴
1.2.3.3?spring-boot-management刪除依賴
1.2.3.4 刪除原項(xiàng)目utils包
1.2.3.5?在spring-boot-management(原項(xiàng)目)引入runa-utils依賴
?1.2.4 啟動(dòng)服務(wù)-測(cè)試
?1.3 總結(jié)
二、繼承與聚合
2.1 繼承
?2.1.1 新建父工程模塊runa-parent
?2.1.2 設(shè)置runa-parent打包方式為pom
2.1.3?設(shè)置runa-parent父工程未springboot
2.1.4 刪除?runa-parent的src
2.1.5 修改spring-boot-management父工程為runa-parent
2.1.6 刪除 spring-boot-management提示異常的標(biāo)簽
?2.1.7 在runa-pojo與runa-utils設(shè)置父工程和刪除
2.1.8 在父工程runa-parent配置共有依賴
2.2 繼承實(shí)現(xiàn)總結(jié)?
?2.3 版本鎖定
?2.3.1 將runa-parent管理版本(子工程)
2.3.2 runa-utils依賴版本刪除
2.3.3 自定義屬性?
?2.3.3.1 runa-parent設(shè)置版本
2.3.3.2 總結(jié)
?2.2 聚合
?2.2.1 runa-parent添加
?2.2.2 runa-parent maven生命周期進(jìn)行打包等
2.3 總結(jié)
三、私服
3.1 介紹
3.2 資源上傳與下載
3.3 私服配置
3.3.1 需要在 servers 標(biāo)簽中,配置訪問私服的個(gè)人憑證(訪問的用戶名和密碼)
3.3.2 在 mirrors 中只配置我們自己私服的連接地址(如果之前配置過阿里云,需要直接替換掉)
3.3.3 需要在 profiles 中,增加如下配置,來指定snapshot快照版本的依賴,依然允許使用
3.3.4 如果需要上傳自己的項(xiàng)目到私服上,需要在項(xiàng)目的pom.xml文件中,增加如下配置,來配置項(xiàng)目發(fā)布的地址(也就是私服的地址)
3.3.5 發(fā)布項(xiàng)目,直接運(yùn)行 deploy 生命周期即可 (發(fā)布時(shí),建議跳過單元測(cè)試)
3.3.6 啟動(dòng)本地私服
3.4 上傳maven生命周期-deploy
3.5 下載
前言:
分模塊設(shè)計(jì)開發(fā)是一種軟件開發(fā)方法論,它將一個(gè)大型的軟件系統(tǒng)按照不同的功能模塊進(jìn)行劃分,每個(gè)模塊獨(dú)立設(shè)計(jì)、獨(dú)立開發(fā)、獨(dú)立測(cè)試、獨(dú)立部署和獨(dú)立維護(hù)。這有助于降低整個(gè)系統(tǒng)的復(fù)雜度,提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
分模塊設(shè)計(jì)開發(fā)一般包含以下步驟:
1. 確定系統(tǒng)的功能模塊:將整個(gè)系統(tǒng)劃分成多個(gè)不同的功能模塊,如登錄模塊、訂單模塊、支付模塊等。
2. 設(shè)計(jì)每個(gè)模塊的接口:在每個(gè)模塊內(nèi)部,設(shè)計(jì)該模塊與其他模塊的接口,包括輸入輸出參數(shù)、數(shù)據(jù)結(jié)構(gòu)等。
3. 各個(gè)模塊的獨(dú)立開發(fā):分別對(duì)每個(gè)模塊進(jìn)行獨(dú)立的開發(fā),每個(gè)開發(fā)人員只負(fù)責(zé)一個(gè)模塊。
4. 集成測(cè)試:在開發(fā)完成后,對(duì)各個(gè)模塊進(jìn)行集成測(cè)試,測(cè)試各個(gè)模塊之間的接口是否正常,是否能夠協(xié)同工作。
5. 系統(tǒng)測(cè)試:對(duì)整個(gè)系統(tǒng)進(jìn)行測(cè)試,模擬實(shí)際運(yùn)行環(huán)境下的各種場(chǎng)景,保證系統(tǒng)整體的穩(wěn)定性和可用性。
6. 部署上線:將整個(gè)系統(tǒng)部署到線上環(huán)境中,進(jìn)行實(shí)際的運(yùn)行。
分模塊設(shè)計(jì)開發(fā)的優(yōu)點(diǎn):
1. 降低系統(tǒng)復(fù)雜度:將整個(gè)系統(tǒng)分模塊開發(fā),讓開發(fā)人員專注于模塊間的關(guān)系和模塊內(nèi)的邏輯,從而降低系統(tǒng)復(fù)雜度。
2. 提高可維護(hù)性:每個(gè)模塊獨(dú)立開發(fā),修改某個(gè)模塊不影響其他模塊的使用,方便維護(hù)和升級(jí)。
3. 提高可擴(kuò)展性:如果需要增加新的功能,只需要增加一個(gè)新的模塊,不會(huì)影響到其他模塊的運(yùn)行。
4. 提高開發(fā)效率:多個(gè)開發(fā)人員可以并行開發(fā)不同的模塊,加快開發(fā)進(jìn)度。
一、分模塊設(shè)計(jì)與開發(fā)
1.1 分模塊設(shè)計(jì)
?
?1.2 分模塊設(shè)計(jì)-實(shí)踐
?
1.2.1 復(fù)制老項(xiàng)目改為spring-boot-management
新建文件夾spring_boot_project01
將之前方面復(fù)制過來改成?spring-boot-management
打開項(xiàng)目spring-boot-management 使用Rename 修改啟動(dòng)類等
1.2.2 新建maven模塊runa-pojo
?
1.2.2.1 將原項(xiàng)目pojo復(fù)制到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 刪除原項(xiàng)目pojo包
略
1.2.2.4 在spring-boot-management(原項(xiàng)目)引入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 將原項(xiàng)目utils復(fù)制到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 刪除原項(xiàng)目utils包
略
1.2.3.5?在spring-boot-management(原項(xiàng)目)引入runa-utils依賴
<dependency><groupId>com.runa</groupId><artifactId>runa-utils</artifactId><version>1.0-SNAPSHOT</version></dependency>
?1.2.4 啟動(dòng)服務(wù)-測(cè)試
?
?1.3 總結(jié)
二、繼承與聚合
2.1 繼承
?
?
?2.1.1 新建父工程模塊runa-parent
?
?
?2.1.2 設(shè)置runa-parent打包方式為pom
<packaging>pom</packaging>
2.1.3?設(shè)置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提示異常的標(biāo)簽
<groupId>com.runa</groupId>
?
?2.1.7 在runa-pojo與runa-utils設(shè)置父工程和刪除<groupId>
2.1.8 在父工程runa-parent配置共有依賴
將子工程共有的依賴剪切到父工程
2.2 繼承實(shí)現(xiàn)總結(jié)?
?
?
?
?2.3 版本鎖定
?2.3.1 將runa-parent管理版本(子工程)
<!-- 統(tǒng)一管理版本標(biāo)簽--><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設(shè)置版本
<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>
?其他依次設(shè)置
<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>
<!-- 他好像不需要版本管理 因?yàn)樗莝pring-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><!-- 統(tǒng)一管理版本標(biāo)簽--><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>
<!-- 下面這個(gè)都可以刪除--><version>${spring-boot-starter-web}</version></dependency></dependencies></dependencyManagement></project>
2.3.3.2 總結(jié)
?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>
<!-- 他好像不需要版本管理 因?yàn)樗莝pring-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><!-- 統(tǒng)一管理版本標(biāo)簽--><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>
<!-- 下面這個(gè)都可以刪除--><version>${spring-boot-starter-web}</version></dependency></dependencies></dependencyManagement></project>
?2.2.2 runa-parent maven生命周期進(jìn)行打包等
2.3 總結(jié)
三、私服
3.1 介紹
3.2 資源上傳與下載
?
?
?
3.3 私服配置
?私服配置說明
訪問私服:http://192.168.150.101:8081
訪問密碼:admin/admin
下載地址
使用私服,需要在maven的settings.xml配置文件中,做如下配置:
3.3.1 需要在 servers 標(biāo)簽中,配置訪問私服的個(gè)人憑證(訪問的用戶名和密碼)
<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 如果需要上傳自己的項(xiàng)目到私服上,需要在項(xiàng)目的pom.xml文件中,增加如下配置,來配置項(xiàng)目發(fā)布的地址(也就是私服的地址)
<distributionManagement><!-- release版本的發(fā)布地址 --><repository><id>maven-releases</id><url>http://192.168.150.101:8081/repository/maven-releases/</url></repository><!-- snapshot版本的發(fā)布地址 --><snapshotRepository><id>maven-snapshots</id><url>http://192.168.150.101:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>
3.3.5 發(fā)布項(xiàng)目,直接運(yùn)行 deploy 生命周期即可 (發(fā)布時(shí),建議跳過單元測(cè)試)
3.3.6 啟動(dòng)本地私服
1、解壓: apache-maven-nexus.zip2、進(jìn)入目錄: apache-maven-nexus\nexus-3.39.0-01\bin #(注意解壓不要有中文路徑)3、啟動(dòng)服務(wù):雙擊 start.bat4、訪問服務(wù):localhost:80815、私服配置說明:將上述配置私服信息的 192.168.150.101 改為 localhost
3.4 上傳maven生命周期-deploy
?
3.5 下載
新項(xiàng)目配置依賴
?要驗(yàn)證下載,先將本地倉庫的刪除掉