Maven install 報(bào)錯(cuò)"程序包不存在"問(wèn)題的解決方法
概述
在mvn clean install時(shí),控制臺(tái)各種報(bào)錯(cuò),大概有:
- java:[8,52] 程序包c(diǎn)om.xxx不存在
- java:[98,27] 找不到符號(hào) 符號(hào): 類(lèi) XXX 位置: 類(lèi)XXX
- [ERROR] COMPILATION ERROR :
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:858)
at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
備注:如果想要開(kāi)啟Maven的debug模式,可以加上-X 參數(shù):
mvn clean install -Dmaven.test.skip=true -X | less
分析依賴(lài)關(guān)系可以使用:
mvn -X dependency:tree | less
后來(lái),在日志中發(fā)現(xiàn)了一個(gè)警告:
[WARNING] The POM for com.xxx:jar:0.0.1-SNAPSHOT is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
說(shuō)是一個(gè)jar包的pom無(wú)效,傳遞依賴(lài)項(xiàng)(如果有的話(huà))將不可用。
也就是說(shuō),Maven的模塊(Module) C 依賴(lài)了 B,而B(niǎo)又依賴(lài)了一個(gè)jar,B的pom無(wú)效,所以C編譯時(shí)就報(bào)錯(cuò)了,各種找不到類(lèi)、找不到包
同時(shí),觀(guān)察到編譯時(shí),會(huì)從私服拉取xml文件:
Downloading: http://xx.xx.xx.xx:8080/nexus/content/repositories/snapshots/xx/xx/xx/xx/0.0.1-SNAPSHOT/maven-metadata.xml
解決方法
B層Module的引用中,去掉第三方的jar,尋找一個(gè)Maven中央倉(cāng)庫(kù)可以引用到的jar代替;
在項(xiàng)目根目錄,mvn clean deploy,把C層引用到的jar包傳到私服上面;
這次再運(yùn)行mvn clean install -Dmaven.test.skip=true,發(fā)現(xiàn)通過(guò),問(wèn)題解決。
彩蛋
如果用了以上的方法,還是沒(méi)有編譯通過(guò),還有一個(gè)不是辦法的辦法,但是實(shí)測(cè)有效:
可以找另一臺(tái)編譯通過(guò)的電腦,整個(gè)拷貝這臺(tái)電腦的.m2/repository文件夾到自己電腦對(duì)應(yīng)的maven倉(cāng)庫(kù)地址,然后再編譯。
其他報(bào)錯(cuò)解決方法
1.錯(cuò)誤場(chǎng)景:
項(xiàng)目為springboot項(xiàng)目,maven聚合工程,分為app、api、common、gongqiu四個(gè)項(xiàng)目,app、api、common的父類(lèi)是gongqiu,app和api依賴(lài)common,打包時(shí)報(bào)錯(cuò)common中的程序包xxx不存在,錯(cuò)誤信息如下:

解決辦法有兩個(gè):
1.將ROOT中的spring-boot-maven-plugin更換成org.apache.maven.plugins,如下所示:

更換為

2.將spring-boot-maven-plugin的版本降低,如下所示:

運(yùn)行結(jié)果:

到此這篇關(guān)于Maven install 報(bào)錯(cuò)"程序包不存在"問(wèn)題的解決方法的文章就介紹到這了,更多相關(guān)Maven install 報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java?Http請(qǐng)求方式之RestTemplate常用方法詳解
這篇文章主要為大家介紹了Java?Http請(qǐng)求方式之RestTemplate常用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Java項(xiàng)目導(dǎo)入IDEA的流程配置以及常見(jiàn)問(wèn)題解決方法
通常一個(gè)團(tuán)隊(duì)中可能有人用eclipse,有人用intelliJ,那么經(jīng)常會(huì)出現(xiàn)需要導(dǎo)入別人用eclipse建好的web項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于Java項(xiàng)目導(dǎo)入IDEA的流程配置以及常見(jiàn)問(wèn)題解決方法的相關(guān)資料,需要的朋友可以參考下2023-05-05
Java多線(xiàn)程中線(xiàn)程池常見(jiàn)7個(gè)參數(shù)的詳解以及執(zhí)行流程
本文主要介紹了Java多線(xiàn)程中線(xiàn)程池常見(jiàn)7個(gè)參數(shù)的詳解以及執(zhí)行流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
java sqlserver text 類(lèi)型字段讀取方法
有這樣一個(gè)需求,需要將原本存儲(chǔ)在數(shù)據(jù)庫(kù)中的文檔轉(zhuǎn)存至文件系統(tǒng)中,于是寫(xiě)了一個(gè)簡(jiǎn)單的程序完成此功能2012-11-11
Spring?AI?+?混元帶你實(shí)現(xiàn)企業(yè)級(jí)穩(wěn)定可部署的AI業(yè)務(wù)智能體
我們深入探討了Spring?AI在智能體構(gòu)建中的實(shí)際應(yīng)用,特別是在企業(yè)環(huán)境中的價(jià)值與效能,通過(guò)逐步實(shí)現(xiàn)一個(gè)本地部署的智能體解決方案,我們不僅展示了Spring?AI的靈活性與易用性,還強(qiáng)調(diào)了它在推動(dòng)AI技術(shù)與業(yè)務(wù)深度融合方面的潛力,感興趣的朋友一起看看吧2024-11-11
Spring Cloud之遠(yuǎn)程調(diào)用OpenFeign參數(shù)傳遞
本文介紹了Spring Cloud中使用OpenFeign進(jìn)行遠(yuǎn)程調(diào)用時(shí),參數(shù)傳遞的不同方式,包括傳遞單個(gè)參數(shù)、多個(gè)參數(shù)、對(duì)象和JSON數(shù)據(jù),感興的朋友一起看看吧2025-03-03

