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

Maven高頻配置錯(cuò)誤總結(jié)與解決方案

 更新時(shí)間:2026年03月11日 09:24:09   作者:蒙眼過河  
在日常 Java 開發(fā)中,Maven 幾乎是標(biāo)配構(gòu)建工具,但很多人在寫 pom.xml、搭建多模塊項(xiàng)目、處理依賴時(shí),總會(huì)遇到各種莫名其妙的報(bào)錯(cuò),本文把最常見、最容易踩坑的 Maven 配置問題整理成一篇完整文章,需要的朋友可以參考下

在日常 Java 開發(fā)中,Maven 幾乎是標(biāo)配構(gòu)建工具,但很多人在寫 pom.xml、搭建多模塊項(xiàng)目、處理依賴時(shí),總會(huì)遇到各種莫名其妙的報(bào)錯(cuò)。
本文把最常見、最容易踩坑的 Maven 配置問題整理成一篇完整博客,包含:問題現(xiàn)象、原因、解決方案、示例代碼,方便以后直接查閱。

一、前言

除了之前遇到的:

'parent.relativePath' points at no local POM

這類父模塊路徑問題,Maven 還有大量高頻配置坑:GAV 坐標(biāo)、依賴沖突、scope 誤用、插件版本、倉庫配置、多模塊繼承等。
本文一次性講清楚,讓你以后遇到 Maven 問題不再迷茫。

二、POM 基礎(chǔ)配置錯(cuò)誤

1. GAV 坐標(biāo)不完整 / 沖突

問題表現(xiàn):

  • 編譯報(bào)錯(cuò):artifactId is missing、version is missing
  • 多模塊項(xiàng)目子模塊找不到父模塊配置

原因:
Maven 三大坐標(biāo) groupId:artifactId:version 缺一不可。
子模塊如果不寫版本,必須從父模塊繼承,否則無法識(shí)別。

正確寫法:
父 pom.xml

<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>

子 pom.xml

<parent>
    <groupId>com.example</groupId>
    <artifactId>parent</artifactId>
    <version>1.0.0</version>
    <relativePath>../</relativePath>
</parent>
<artifactId>child</artifactId>

2. packaging 打包方式錯(cuò)誤

問題表現(xiàn):

  • 多模塊項(xiàng)目構(gòu)建失敗
  • 打包不出 jar/war
  • SpringBoot 項(xiàng)目無法運(yùn)行

常見錯(cuò)誤:

  • 父項(xiàng)目沒寫 <packaging>pom</packaging>
  • web 項(xiàng)目寫成 jar,普通項(xiàng)目寫成 war

正確配置:

  • 父模塊:pom
  • 普通 Java:jar(默認(rèn))
  • Web 項(xiàng)目:war
  • SpringBoot:jarwar + 打包插件

三、依賴配置錯(cuò)誤(運(yùn)行時(shí)坑最多)

1. 依賴版本沖突

問題表現(xiàn):

  • 運(yùn)行時(shí)報(bào):NoSuchMethodError
  • ClassNotFoundException
  • 類、方法找不到,但明明引入了包

原因:
傳遞依賴帶來多個(gè)版本,Maven 按最短路徑選擇,導(dǎo)致版本覆蓋。

解決步驟:

  1. 查看依賴樹
mvn dependency:tree
  1. 排除沖突版本
<exclusions>
    <exclusion>
        <groupId>xxx</groupId>
        <artifactId>yyy</artifactId>
    </exclusion>
</exclusions>
  1. 手動(dòng)指定統(tǒng)一版本

2. scope 依賴范圍濫用

問題表現(xiàn):

  • 編譯正常,運(yùn)行缺包
  • 測(cè)試代碼能跑,正式包報(bào)錯(cuò)
  • 包體積異常大

scope 說明:

  • compile:默認(rèn),編譯運(yùn)行都有效
  • test:只在測(cè)試有效
  • provided:編譯有效,運(yùn)行由容器提供(不打包)
  • runtime:運(yùn)行時(shí)有效

典型錯(cuò)誤:

  • 把 Servlet API 寫成默認(rèn) scope → 包沖突
  • 把 JUnit 寫成 compile → 打進(jìn)生產(chǎn)包

3. 傳遞依賴失效 / 依賴缺失

現(xiàn)象:

  • 明明引入了依賴,仍然提示找不到類
  • dependency:tree 里看不到該 jar

原因:

  • 被其他依賴排除
  • 依賴本身是接口包,需要手動(dòng)加實(shí)現(xiàn)包

解決:

  • 檢查排除配置
  • 手動(dòng)補(bǔ)全依賴
  • 清理本地倉庫重新下載

四、構(gòu)建插件 & 倉庫錯(cuò)誤

1. 插件未指定版本 / JDK 版本不匹配

現(xiàn)象:

invalid target release: 17

原因:

  • maven-compiler-plugin 版本太低
  • 沒指定 source、target

正確配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <source>17</source>
        <target>17</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

2. 倉庫 / 鏡像配置錯(cuò)誤

現(xiàn)象:

  • 依賴下載失敗
  • 公司私 服拉不下來
  • 速度極慢

解決:
配置阿里云鏡像:

<mirror>
    <id>aliyun</id>
    <mirrorOf>central</mirrorOf>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

五、多模塊項(xiàng)目常見錯(cuò)誤

1. 循環(huán)依賴

現(xiàn)象:

Circular dependency

解決:

  • 抽公共模塊
  • 不要 A 依賴 B,B 又依賴 A

2. 子模塊不繼承父模塊版本

原因:

  • 父類用了 <dependencies> 而不是 <dependencyManagement>
  • 插件寫在 <plugins> 而不是 <pluginManagement>

正確結(jié)構(gòu):

  • 父:dependencyManagement 統(tǒng)一版本
  • 子:只寫 groupId + artifactId,不寫 version

六、Maven 排查萬能命令

遇到問題直接按順序執(zhí)行:

mvn clean compile -X        # 調(diào)試模式,看詳細(xì)日志
mvn dependency:tree         # 查看依賴樹
mvn help:effective-pom      # 查看最終生效pom

七、總結(jié)

90% 的 Maven 問題都來自這幾類:

  1. parent 路徑、GAV、packaging 基礎(chǔ)配置錯(cuò)誤
  2. 依賴沖突、scope 用錯(cuò)、依賴缺失
  3. 插件版本、JDK 版本、倉庫鏡像
  4. 多模塊循環(huán)依賴、繼承管理

以上就是Maven高頻配置錯(cuò)誤總結(jié)與解決方案的詳細(xì)內(nèi)容,更多關(guān)于Maven高頻配置錯(cuò)誤的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • mybatis如何根據(jù)表逆向自動(dòng)化生成代碼實(shí)例

    mybatis如何根據(jù)表逆向自動(dòng)化生成代碼實(shí)例

    逆向工程是一個(gè)專門為 MyBatis 框架使用者設(shè)計(jì)的代碼生成器,可以根據(jù)數(shù)據(jù)庫中的表字段名,自動(dòng)生成 POJO 類,mapper 接口與 SQL 映射文件,這篇文章主要給大家介紹了關(guān)于mybatis如何根據(jù)表逆向自動(dòng)化生成代碼的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • SpringBoot優(yōu)雅的進(jìn)行全局異常處理的實(shí)現(xiàn)步驟

    SpringBoot優(yōu)雅的進(jìn)行全局異常處理的實(shí)現(xiàn)步驟

    在軟件開發(fā)的世界里,異常處理是保證系統(tǒng)穩(wěn)定性和用戶體驗(yàn)的關(guān)鍵因素之一,尤其是在構(gòu)建基于微服務(wù)架構(gòu)的應(yīng)用時(shí),SpringBoot提供了一套強(qiáng)大的工具來幫助開發(fā)者管理這些異常,所以本文給大家介紹了SpringBoot如何優(yōu)雅的進(jìn)行全局異常處理,需要的朋友可以參考下
    2025-02-02
  • Java內(nèi)存泄漏早期排查流程(未觸發(fā)頻繁Full GC前)

    Java內(nèi)存泄漏早期排查流程(未觸發(fā)頻繁Full GC前)

    內(nèi)存泄漏早期最典型特征:老年代/堆內(nèi)存呈緩慢、持續(xù)、不可逆的上漲,但還沒嚴(yán)重到頻繁Full GC、OOM,本文給大家介紹了一套生產(chǎn)環(huán)境可直接落地的排查流程,從簡單到深入,不影響業(yè)務(wù),需要的朋友可以參考下
    2026-06-06
  • SpringBatch數(shù)據(jù)寫入實(shí)現(xiàn)

    SpringBatch數(shù)據(jù)寫入實(shí)現(xiàn)

    Spring Batch通過ItemWriter接口及其豐富的實(shí)現(xiàn),提供了強(qiáng)大的數(shù)據(jù)寫入能力,本文主要介紹了SpringBatch數(shù)據(jù)寫入實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • Java實(shí)現(xiàn)文件變化監(jiān)聽代碼實(shí)例

    Java實(shí)現(xiàn)文件變化監(jiān)聽代碼實(shí)例

    這篇文章主要介紹了Java實(shí)現(xiàn)文件變化監(jiān)聽代碼實(shí)例,通過定時(shí)任務(wù),輪訓(xùn)查詢文件的最后修改時(shí)間,與上一次進(jìn)行對(duì)比,如果發(fā)生變化,則說明文件已經(jīng)修改,進(jìn)行重新加載或?qū)?yīng)的業(yè)務(wù)邏輯處理,需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)HTML轉(zhuǎn)為Word的示例代碼

    Java實(shí)現(xiàn)HTML轉(zhuǎn)為Word的示例代碼

    本文以Java代碼為例為大家詳細(xì)介紹如何實(shí)現(xiàn)將HTML文件轉(zhuǎn)為Word文檔(.docx、.doc)。在實(shí)際開發(fā)場景中可參考此方法來轉(zhuǎn)換,感興趣的可以了解一下
    2022-06-06
  • java8 集合求差集、并集、交集的實(shí)例

    java8 集合求差集、并集、交集的實(shí)例

    下面小編就為大家分享一篇java8 集合求差集、并集、交集的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解Java編程中統(tǒng)一資源定位符URL的相關(guān)使用

    詳解Java編程中統(tǒng)一資源定位符URL的相關(guān)使用

    這篇文章主要介紹了Java編程中統(tǒng)一資源定位符URL的相關(guān)使用,是Java網(wǎng)絡(luò)編程中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • Java 緩沖區(qū)優(yōu)化實(shí)現(xiàn)思路

    Java 緩沖區(qū)優(yōu)化實(shí)現(xiàn)思路

    本文詳細(xì)介紹了Java中的緩沖區(qū)(Buffer)概念、設(shè)計(jì)思想、分類、使用場景和注意事項(xiàng),強(qiáng)調(diào)了緩沖區(qū)通過批量處理減少頻繁I/O或數(shù)據(jù)拷貝,優(yōu)化生產(chǎn)者-消費(fèi)者速度差異問題,提升性能的核心價(jià)值,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 詳解SpringBoot基于Dubbo和Seata的分布式事務(wù)解決方案

    詳解SpringBoot基于Dubbo和Seata的分布式事務(wù)解決方案

    這篇文章主要介紹了詳解SpringBoot基于Dubbo和Seata的分布式事務(wù)解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評(píng)論

兴海县| 安塞县| 江北区| 昌黎县| 尚志市| 诸城市| 通州区| 长治市| 铁岭县| 涿州市| 广西| 栾城县| 通州区| 都安| 错那县| 临汾市| 嵊州市| 秦皇岛市| 三台县| 永城市| 济宁市| 郓城县| 凤台县| 体育| 道孚县| 修水县| 固原市| 定安县| 简阳市| 新野县| 宁晋县| 巴中市| 镇赉县| 屏东县| 义乌市| 湄潭县| 青河县| 荣成市| 安徽省| 普兰县| 同江市|