前言
邯山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,邯山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為邯山近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的邯山做網(wǎng)站的公司定做!
最近一個月參與了公司幾個項目的腳手架構(gòu)建,適當(dāng)總結(jié)下經(jīng)驗。之前見過太多項目依賴,構(gòu)建,管理混亂不堪,導(dǎo)致后續(xù)的維護性差,甚至出現(xiàn)由此引發(fā)的事故。當(dāng)時就有一個規(guī)范管理的想法。
依賴管理
依賴管理,其實就是依賴范圍的管理。這里我叫他 依賴池。也就是 所有相關(guān)項目的依賴只能從這個池子里拿,不能超出其范圍。池子里的依賴我們定義為都是久經(jīng)考驗的同志。以maven工程為例,我們可以定義 一個名為ooxx-dependencies 的 pom 類型的工程。這里用來存放我們經(jīng)過技術(shù)選型并測試通過的依賴。每次依賴變動發(fā)布都要有新的版本號。也就是 依賴池的迭代一定要以版本號為標(biāo)志,多版本并行。
<?xml version="1.0" encoding="UTF-8"?>4.0.0 com.ooxx ooxx-dependencies 1.0.0.RELEASE ooxx dependencies the root dependencies 1.8 1.8 UTF-8 UTF-8 1.8 2.1.5.RELEASE 2.1.4 1.0.10.RELEASE 5.1.47 3.2.0 4.5.5 3.1.1 3.2.0 3.2.0 2.9.2 nexus Releases http://url/repository/maven-releases nexus Snapshot http://url/repository/maven-snapshots org.springframework.boot spring-boot-starter-parent ${springboot.version} pom import de.codecentric spring-boot-admin-dependencies ${spring-boot-admin.version} pom import org.springframework.boot spring-boot-starter-web ${springboot.version} org.springframework.boot spring-boot-starter-tomcat org.springframework.security spring-security-jwt ${springSecurityJwt.version} com.zaxxer HikariCP ${hikari.version} mysql mysql-connector-java ${mysql.version} com.baomidou mybatis-plus-boot-starter ${mybatisplus.version} com.baomidou mybatis-plus-generator ${mybatisplus.version} io.springfox springfox-swagger2 ${swagger.version} io.springfox springfox-swagger-ui ${swagger.version}
然后,我們根據(jù)業(yè)務(wù)會定義一個parent項目,這個項目同樣是pom工程,區(qū)別于依賴池的是, 依賴池基于技術(shù)棧而不關(guān)注業(yè)務(wù),parent關(guān)注于業(yè)務(wù),不同業(yè)務(wù)application 依賴不同的parent,parent 來定義具體業(yè)務(wù)的module層次劃分。當(dāng)然parent 必須從依賴池構(gòu)建。可能例子更直觀, 我們有一個項目,模塊分為:1.后臺管理模塊 2.app接口模塊 3.通用依賴模塊 4.數(shù)據(jù)層模塊 5.app 啟動模塊 可以結(jié)合上面例子進行如下構(gòu)建parent
<?xml version="1.0" encoding="UTF-8"?>4.0.0 com.ooxx ooxx-parent 1.0.0 pom parent the parent 1.8 1.8 UTF-8 UTF-8 1.8 1.0.0 1.0.0.RELEASE com.ooxx ooxx-dependencies ${ooxx-dependencies.version} pom import com.ooxx ooxx-db ${ooxx.version} com.ooxx ooxx-common ${ooxx.version} com.ooxx ooxx-manage-api ${ooxx.version} com.ooxx ooxx-app-api ${ooxx.version} cn.hutool hutool-all provided org.projectlombok lombok compile
上述的具體如 app接口模塊 可以直接引用依賴池中的依賴進行具體開發(fā)。
補充
同時建議 版本號 為{數(shù)字}.{說明格式}。比如1.0.0.RC、 1.0.0.GA 等用于不同的場景。pom 名稱盡量 模板化 如 ooxx-parent 下的子module 命名為 ooxx-db、ooxx-app-api 之類。這樣可以用maven 模板生成統(tǒng)一的模板項目以快速構(gòu)建項目。同時達到 “見其名而知其意”的效果。因個人能力有限,不足之處或者更好的建議還望多多指教。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。