當前位置:首頁 » 編程軟體 » 微服務項目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 父子項目。

熱點內容
androidjni調用so 發布:2025-05-01 13:10:30 瀏覽:20
手機如何打開腳本 發布:2025-05-01 13:10:26 瀏覽:131
壓縮機撬裝 發布:2025-05-01 13:00:22 瀏覽:147
c語言判斷nan 發布:2025-05-01 12:57:13 瀏覽:393
隨機存取存儲簡稱 發布:2025-05-01 12:47:27 瀏覽:301
抖音音樂怎麼定時關閉安卓 發布:2025-05-01 12:39:26 瀏覽:551
cf緩存圖片規則 發布:2025-05-01 12:37:25 瀏覽:922
fx3sa用什麼編程軟體 發布:2025-05-01 12:22:20 瀏覽:263
我的世界手機版伺服器從哪找 發布:2025-05-01 11:47:14 瀏覽:662
sql創建表外鍵 發布:2025-05-01 11:39:59 瀏覽:168