最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何將maven項目劃分為多個模塊

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

多模塊拆分的必要性

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

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

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

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

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

將原來product項目拆分為如下3個模塊

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

2、選擇Maven選項,archetype可以不選擇,直接next

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

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

4、查看外層pom文件

新增完所有的模塊之后,在最外層的pom文件會自動將其引入進來

5、版本管理

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

6、項目依賴

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

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

打包完成之后IDEA控制臺顯示如下:

在本地倉庫顯示如下:

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • JAVA 內(nèi)存溢出案例匯總

    JAVA 內(nèi)存溢出案例匯總

    這篇文章主要介紹了JAVA 內(nèi)存溢出案例的匯總,文中講解非常細致,幫助各位工作學(xué)習(xí)時避免內(nèi)存溢出,感興趣的朋友可以了解下
    2020-07-07
  • SpringBoot如何引入緩存提高單次查詢數(shù)據(jù)效率

    SpringBoot如何引入緩存提高單次查詢數(shù)據(jù)效率

    這篇文章主要介紹了SpringBoot如何引入緩存提高單次查詢數(shù)據(jù)效率問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • VSCode?配置?Spring?Boot?項目開發(fā)環(huán)境的全過程

    VSCode?配置?Spring?Boot?項目開發(fā)環(huán)境的全過程

    兩三年前曾經(jīng)試過配置Java環(huán)境, 存在不少問題作罷. 最近搜了下相關(guān)的文章, 感覺VSCode對Java項目的支持比三年前完善了不少. 今天實際配置了一下環(huán)境, 把自己常用的功能過了一遍, 基本能跑通開發(fā)流程, 做個筆記,需要的朋友可以參考下
    2024-03-03
  • 深入探討Java 中的 Object 類詳解(一切類的根基)

    深入探討Java 中的 Object 類詳解(一切類的根基)

    本文詳細介紹了Java中的Object類,作為所有類的根類,其重要性不言而喻,文章涵蓋了Object類的主要方法,如toString()、equals()、hashCode()等,本文深入探討 Object 類的作用、常用方法以及如何在實際開發(fā)中利用這些方法,感興趣的朋友一起看看吧
    2025-01-01
  • Java超詳細講解WebMvcConfigurer攔截器

    Java超詳細講解WebMvcConfigurer攔截器

    這篇文章將用實例來和大家介紹一下WebMvcConfigurer攔截器。文中的示例代碼講解詳細,對我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下
    2022-06-06
  • Java利用httpclient通過get、post方式調(diào)用https接口的方法

    Java利用httpclient通過get、post方式調(diào)用https接口的方法

    這篇文章主要介紹了Java利用httpclient通過get、post方式調(diào)用https接口的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Java9以后的垃圾回收的具體用法

    Java9以后的垃圾回收的具體用法

    這篇文章主要介紹了Java9以后的垃圾回收的具體用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 詳解Java中的線程池

    詳解Java中的線程池

    這篇文章主要介紹了Java中的線程池,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Spring6整合JUnit的詳細步驟

    Spring6整合JUnit的詳細步驟

    這篇文章主要介紹了Spring6整合JUnit的詳細步驟,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java的ConcurrentLinkedQueue源碼分析

    Java的ConcurrentLinkedQueue源碼分析

    這篇文章主要介紹了Java的ConcurrentLinkedQueue源碼分析,ConcurrentLinkedQueue 是一個基于鏈接節(jié)點的無界線程安全的隊列,當我們添加一個元素的時候,它會添加到隊列的尾部,當我們獲取一個元素時,它會返回隊列頭部的元素,需要的朋友可以參考下
    2023-12-12

最新評論

武威市| 沾益县| 新和县| 河北区| 乌兰县| 明光市| 衡南县| 赞皇县| 上饶市| 华亭县| 关岭| 太湖县| 滕州市| 武定县| 读书| 武邑县| 铁岭县| 肥西县| 宁南县| 赫章县| 台北市| 平谷区| 滦南县| 瓮安县| 于田县| 固原市| 青神县| 新建县| 涞源县| 白朗县| 尤溪县| 香河县| 习水县| 普宁市| 霍林郭勒市| 台安县| 罗江县| 鄂托克前旗| 西丰县| 舞钢市| 共和县|