當前位置:首頁 » 編程軟體 » 微服務項目maven編譯很慢

微服務項目maven編譯很慢

發布時間: 2025-03-08 17:23:34

Ⅰ 引入swagger項目無法正常啟動--微服務環境下

1.問題描述:

      使用alibaba微服務體系搭建的項目,模塊管理使用的maven,給項目引入swagger做介面文檔,啟動時報錯,報錯信息如下:

2.問題解決

升級guava版本為20.0以上。

3.問題排查思路

首先,查看錯誤日誌,錯誤日誌中英文的大體翻譯為,「嘗試調用了一個不存在方法,發生的位置在 類中,下面這個方法不存在,可能方法存在....,guava-19.0.jar包中"

然後從錯誤日誌中我們就可以分析出,由於guava-19.0這個jar引起的,並且報出的錯誤是某個方法不存在,那麼我們就可以考慮到是這個jar的版本太低了,但是和swagger有什麼關系那?那這個時候我們可以想到swagger有沒有使用guava,打開編譯器,查看swagger的包依賴關系:

使用idea的可以這樣操作,右側---》maven--->選中需要分析依賴的項目---》maven最上方有個show depenceies--->然後打開下面這張圖--》左上角有個有 show conflicts--》紅線就是有沖突的依賴--》放大就會發現如第二張圖 swagger也依賴了guava,並且要求20.0的版本。

4.根本原因

maven的父子模塊包依賴機制導致,父子項目依賴關系如下:

我們的項目就是在 父項目中引入的swagger,裡面的swagger自己引入了20.0以上版本的guava使用,但是我們在子項目中又添加了如下依賴:

導致父項目的guava版本被覆蓋成了19.0的低版本,所以無法找到swagger使用的某個方法了。

Ⅱ 如何使用 Maven 搭建 Spring Boot 父子項目

使用 Maven 搭建 Spring Boot 父子項目的步驟如下

  1. 創建父項目

    • 使用 Maven 命令行工具創建一個新的 Maven 項目作為父項目。
    • 在父項目的 pom.xml 文件中,設置 <packaging> 標簽的值為 pom,這表示該項目是一個父 POM 項目。
    • 在父項目的 pom.xml 中定義公共的依賴管理,包括 Spring Boot Starter 依賴等。這些依賴不會被父項目直接引入,但會被子項目繼承。
  2. 創建子項目

    • 在父項目的根目錄下,為每個微服務創建一個新的 Maven 子模塊。
    • 每個子模塊的 pom.xml 文件需要引用父項目的 pom.xml,通過 <parent> 標簽指定父項目的坐標。
    • 在子項目的 pom.xml 中,根據需要引入具體的 Spring Boot Starter 依賴和其他必要的依賴。這些依賴將自動繼承父項目中定義的版本,從而避免版本沖突。
  3. 構建和管理項目

    • 使用 Maven 的多模塊構建功能,可以在父項目的根目錄下執行 Maven 命令來構建所有子項目。
    • 通過在父項目的 pom.xml 中定義構建插件和配置,可以簡化構建和部署過程。
    • 當需要更新依賴版本時,只需在父項目的 pom.xml 中更新相應的依賴版本,所有子項目都會自動繼承並使用新的版本。

重點內容父項目:設置為 <packaging>pom</packaging>,管理公共依賴。 子項目:通過 <parent> 標簽引用父項目,繼承父項目的依賴管理。 構建:在父項目根目錄下執行 Maven 命令,構建所有子項目。

按照這些步驟,你可以使用 Maven 搭建一個結構清晰、依賴管理方便的 Spring Boot 父子項目。

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:640
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:84
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:310
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:793
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:345
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:812
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:366
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:593