溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Maven install 報錯"程序包不存在"怎么辦

發(fā)布時間:2020-07-16 13:38:12 來源:億速云 閱讀:2052 作者:小豬 欄目:開發(fā)技術(shù)

小編這次要給大家分享的是Maven install 報錯"程序包不存在"怎么辦,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

概述

在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不存在,錯誤信息如下:

Maven install 報錯"程序包不存在"怎么辦

解決辦法有兩個:

1.將ROOT中的spring-boot-maven-plugin更換成org.apache.maven.plugins,如下所示:

Maven install 報錯"程序包不存在"怎么辦

更換為

Maven install 報錯"程序包不存在"怎么辦

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

Maven install 報錯"程序包不存在"怎么辦

運行結(jié)果:

Maven install 報錯"程序包不存在"怎么辦

看完這篇關(guān)于Maven install 報錯"程序包不存在"怎么辦的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI