Maven install 報錯"程序包不存在"問題的解決方法
概述
在mvn clean install時,控制臺各種報錯,大概有:
- java:[8,52] 程序包com.xxx不存在
- java:[98,27] 找不到符號 符號: 類 XXX 位置: 類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)
備注:如果想要開啟Maven的debug模式,可以加上-X 參數(shù):
mvn clean install -Dmaven.test.skip=true -X | less
分析依賴關(guān)系可以使用:
mvn -X dependency:tree | less
后來,在日志中發(fā)現(xiàn)了一個警告:
[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
說是一個jar包的pom無效,傳遞依賴項(如果有的話)將不可用。
也就是說,Maven的模塊(Module) C 依賴了 B,而B又依賴了一個jar,B的pom無效,所以C編譯時就報錯了,各種找不到類、找不到包
同時,觀察到編譯時,會從私服拉取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,尋找一個Maven中央倉庫可以引用到的jar代替;
在項目根目錄,mvn clean deploy,把C層引用到的jar包傳到私服上面;
這次再運行mvn clean install -Dmaven.test.skip=true,發(fā)現(xiàn)通過,問題解決。
彩蛋
如果用了以上的方法,還是沒有編譯通過,還有一個不是辦法的辦法,但是實測有效:
可以找另一臺編譯通過的電腦,整個拷貝這臺電腦的.m2/repository文件夾到自己電腦對應(yīng)的maven倉庫地址,然后再編譯。
其他報錯解決方法
1.錯誤場景:
項目為springboot項目,maven聚合工程,分為app、api、common、gongqiu四個項目,app、api、common的父類是gongqiu,app和api依賴common,打包時報錯common中的程序包xxx不存在,錯誤信息如下:
解決辦法有兩個:
1.將ROOT中的spring-boot-maven-plugin更換成org.apache.maven.plugins,如下所示:
更換為
2.將spring-boot-maven-plugin的版本降低,如下所示:
運行結(jié)果:
到此這篇關(guān)于Maven install 報錯"程序包不存在"問題的解決方法的文章就介紹到這了,更多相關(guān)Maven install 報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PowerJob的GridFsManager工作流程源碼解讀
這篇文章主要為大家介紹了PowerJob的GridFsManager工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01最全LocalDateTime、LocalDate、Date、String相互轉(zhuǎn)化的方法
大家在開發(fā)過程中必不可少的和日期打交道,對接別的系統(tǒng)時,時間日期格式不一致,每次都要轉(zhuǎn)化,本文為大家準(zhǔn)備了最全的LocalDateTime、LocalDate、Date、String相互轉(zhuǎn)化方法,需要的可以參考一下2023-06-06JavaWeb項目中springmvc和tomcat對靜態(tài)文件的處理
這篇文章主要介紹了JavaWeb項目中springmvc和tomcat對靜態(tài)文件的處理 的相關(guān)資料,需要的朋友可以參考下2016-07-07JAVA實現(xiàn)利用第三方平臺發(fā)送短信驗證碼
本文以注冊為例,在SpringMVC+Spring+Mybatis框架的基礎(chǔ)上完成該短信驗證碼功能。需要的朋友一起來看下吧2016-12-12