Maven install 报错程序包不存在问题的解决

编程入门 行业动态 更新时间:2024-10-20 05:29:21

Maven install 报错程序包<a href=https://www.elefans.com/category/jswz/34/1770716.html style=不存在问题的解决"/>

Maven install 报错程序包不存在问题的解决

概述

mvn clean install时,控制台各种报错,大概有:

  • .java:[8,52] 程序包com.xxx不存在
  • .java:[98,27] 找不到符号 符号: 类 XXX 位置: 类XXX
  • [ERROR] COMPILATION ERROR :
Caused by: org.apache.maven.pluginpiler.CompilationFailureException: Compilation failureat org.apache.maven.pluginpiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:858)at org.apache.maven.pluginpiler.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 参数:

mvn clean install -Dmaven.test.skip=true -X | less

分析依赖关系可以使用:

mvn -X dependency:tree | less

后来,在日志中发现了一个警告:

[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: :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,发现通过,问题解决。

彩蛋

如果用了以上的方法,还是没有编译通过,还有一个不是办法的办法,但是实测有效:
可以找另一台编译通过的电脑,整个拷贝这台电脑的.m2/repository文件夹到自己电脑对应的maven仓库地址,然后再编译。

更多推荐

Maven install 报错程序包不存在问题的解决

本文发布于:2024-02-12 16:43:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1688601.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不存在   报错   程序包   Maven   install

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!