欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何將maven項(xiàng)目劃分為多個(gè)模塊

 更新時(shí)間:2018年09月07日 13:45:24   作者:卓璋  
這篇文章主要介紹了如何將maven項(xiàng)目劃分為多個(gè)模塊,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

多模塊拆分的必要性

使用Java技術(shù)開發(fā)的工程項(xiàng)目,無論是數(shù)據(jù)處理系統(tǒng)還是Web網(wǎng)站,隨著項(xiàng)目的不斷發(fā)展,需求的不斷細(xì)化與添加,工程項(xiàng)目中的代碼越來越多,包結(jié)構(gòu)也越來越復(fù)雜這時(shí)候工程的進(jìn)展就會(huì)遇到各種問題:

(1)不同方面的代碼之間相互耦合,這時(shí)候一系統(tǒng)出現(xiàn)問題很難定位到問題的出現(xiàn)原因,即使定位到問題也很難修正問題,可能在修正問題的時(shí)候引入更多的問題。

(2)多方面的代碼集中在一個(gè)整體結(jié)構(gòu)中,新入的開發(fā)者很難對(duì)整體項(xiàng)目有直觀的感受,增加了新手介入開發(fā)的成本,需要有一個(gè)熟悉整個(gè)項(xiàng)目的開發(fā)者維護(hù)整個(gè)項(xiàng)目的結(jié)構(gòu)(通常在項(xiàng)目較大且開發(fā)時(shí)間較長時(shí)這是很難做到的)。

(3)開發(fā)者對(duì)自己或者他人負(fù)責(zé)的代碼邊界很模糊,這是復(fù)雜項(xiàng)目中最容易遇到的,導(dǎo)致的結(jié)果就是開發(fā)者很容易修改了他人負(fù)責(zé)的代碼且代碼負(fù)責(zé)人還不知道,責(zé)任追蹤很麻煩。

將一個(gè)復(fù)雜項(xiàng)目拆分成多個(gè)模塊是解決上述問題的一個(gè)重要方法,多模塊的劃分可以降低代碼之間的耦合性(從類級(jí)別的耦合提升到j(luò)ar包級(jí)別的耦合),每個(gè)模塊都可以是自解釋的(通過模塊名或者模塊文檔),模塊還規(guī)范了代碼邊界的劃分,開發(fā)者很容易通過模塊確定自己所負(fù)責(zé)的內(nèi)容。

將原來product項(xiàng)目拆分為如下3個(gè)模塊

  • product-server //所有的業(yè)務(wù)邏輯
  • product-client //對(duì)外暴露的接口
  • product-common //公用的對(duì)象
1、在原有的項(xiàng)目上右擊,New->Module

2、選擇Maven選項(xiàng),archetype可以不選擇,直接next

3、填寫對(duì)應(yīng)的GroupId和ArtifactId即可,一直next,一直到finish

如果發(fā)現(xiàn)創(chuàng)建好的maven項(xiàng)目不能新增class文件,可以在對(duì)應(yīng)的文件夾上右鍵,將其添加為Sources Root即可;

4、查看外層pom文件

新增完所有的模塊之后,在最外層的pom文件會(huì)自動(dòng)將其引入進(jìn)來

5、版本管理

可以在properties中設(shè)置版本管理,方便以后升級(jí)之后的改動(dòng)

6、項(xiàng)目依賴

在微服務(wù)中,當(dāng)前項(xiàng)目很有可能依賴于其他服務(wù)的公用項(xiàng)目,這就需要我們先將其他其他服務(wù)的公用項(xiàng)目進(jìn)行打包,并且先放在我們的maven的本地倉庫,這樣當(dāng)前項(xiàng)目才可以進(jìn)行依賴,打包前,需要在公用的項(xiàng)目中輸入如下命令:mvn -Dmaven.test.skip=true -U clean install

(①-Dmaven.test.skip=true跳過測試用例;②-U為強(qiáng)制刷新;③clean清除原有target產(chǎn)生的jar包;④install將其打包放到本地的maven倉庫)

打包完成之后IDEA控制臺(tái)顯示如下:

在本地倉庫顯示如下:

7、修改完項(xiàng)目結(jié)構(gòu)圖

8、理解maven命令package、install、deploy的聯(lián)系與區(qū)別

mvn clean package依次執(zhí)行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7個(gè)階段。

mvn clean install依次執(zhí)行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8個(gè)階段。

mvn clean deploy依次執(zhí)行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9個(gè)階段。

由上面的分析可知主要區(qū)別如下,

package命令完成了項(xiàng)目編譯、單元測試、打包功能,但沒有把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉庫和遠(yuǎn)程maven私服倉庫

install命令完成了項(xiàng)目編譯、單元測試、打包功能,同時(shí)把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉庫,但沒有布署到遠(yuǎn)程maven私服倉庫

deploy命令完成了項(xiàng)目編譯、單元測試、打包功能,同時(shí)把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉庫和遠(yuǎn)程maven私服倉庫

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis自定義SQL的關(guān)系映射、分頁、排序功能的實(shí)現(xiàn)

    Mybatis自定義SQL的關(guān)系映射、分頁、排序功能的實(shí)現(xiàn)

    這篇文章主要介紹了Mybatis自定義SQL的關(guān)系映射、分頁、排序功能的實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Spring Boot整合JPA使用多個(gè)數(shù)據(jù)源的方法步驟

    Spring Boot整合JPA使用多個(gè)數(shù)據(jù)源的方法步驟

    這篇文章主要給大家介紹了關(guān)于Spring Boot整合JPA使用多個(gè)數(shù)據(jù)源的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 詳解如何使用Mybatis的攔截器

    詳解如何使用Mybatis的攔截器

    MyBatis?攔截器是?MyBatis?提供的一個(gè)強(qiáng)大特性,它允許你在?MyBatis?執(zhí)行其核心邏輯的關(guān)鍵節(jié)點(diǎn)插入自定義邏輯,從而改變?MyBatis?的默認(rèn)行為,本文給大家詳細(xì)介紹了如何使用Mybatis的攔截器,需要的朋友可以參考下
    2024-03-03
  • Java中的ArrayList和contains函數(shù)和擴(kuò)容機(jī)制(源碼詳解)

    Java中的ArrayList和contains函數(shù)和擴(kuò)容機(jī)制(源碼詳解)

    這篇文章主要介紹了Java中的ArrayList和contains函數(shù)和擴(kuò)容機(jī)制,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • 如何實(shí)現(xiàn)Java監(jiān)聽器詳解

    如何實(shí)現(xiàn)Java監(jiān)聽器詳解

    今天帶大家了解Java監(jiān)聽器是如何實(shí)現(xiàn)的及實(shí)現(xiàn)原理是什么,文中有非常詳細(xì)的說明,對(duì)正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • JDK15正式發(fā)布(新增功能預(yù)覽)

    JDK15正式發(fā)布(新增功能預(yù)覽)

    這篇文章主要介紹了JDK15正式發(fā)布,新增功能預(yù)覽,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2020-09-09
  • mybaties plus實(shí)體類設(shè)置typeHandler不生效的解決

    mybaties plus實(shí)體類設(shè)置typeHandler不生效的解決

    這篇文章主要介紹了mybaties plus實(shí)體類設(shè)置typeHandler不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 一文了解SpringBoot是如何連接數(shù)據(jù)庫的

    一文了解SpringBoot是如何連接數(shù)據(jù)庫的

    Spring Boot提供了一系列的開箱即用的功能和特性,使得開發(fā)人員可以快速構(gòu)建和部署應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于SpringBoot是如何連接數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 快速解決Hash碰撞沖突的方法小結(jié)

    快速解決Hash碰撞沖突的方法小結(jié)

    這篇文章主要介紹了快速解決Hash碰撞沖突的方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java觀察者模式例子

    Java觀察者模式例子

    這篇文章主要介紹了Java觀察者模式例子的相關(guān)資料,需要的朋友可以參考下
    2015-12-12

最新評(píng)論