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 参数:

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

彩蛋

如果用了以上的方法,还是没有编译通过,还有一个不是办法的办法,但是实测有效:
可以找另一台编译通过的电脑,整个拷贝这台电脑的.m2/repository文件夹到自己电脑对应的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的版本降低,如下所示:

运行结果:

到此这篇关于Maven install 报错"程序包不存在"问题的解决方法的文章就介绍到这了,更多相关Maven install 报错内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot Maven Clean报错解决方案

    报错信息: Plugin org.apache.maven.plugins:maven-clean-plugin:3.0.0 or one of its dependencies could not be resolved 解决方法: 修改pom.xml下: <version>0.0.1-SNAPSHOT</version> 为 <version>0.0.1</version> 另附: 可能Problem窗体下回给出错误提示(警告不用管),直接右键删除即可,

  • 关于IDEA2020.1新建项目maven PKIX 报错问题解决方法

    报错问题如图: 仔细看报错问题后发现,这个错误的主要原因是: ValidatorException:PKIX path building failed : sun.security.provider.certpath.SunCertPathBuilderException : unable to find valid certification path to requested target 造成这个错误的原因是因为有些依赖和插件下载的时候需要验证证书,网上找了好多资料最终解决的,我这里集合了

  • 解决IDEA中maven导入jar包一直报错问题

    查      看:   File------>Project Structure--------->Libraries如下面没有maven所引入的jar包则为该错误[1] 错误原因:  是导入的module错误,应该导入maven的module 解      决:  File------>Project Structure--------->Modules------------->选择中间项目---------->选择红色的减号(因为要重新导入module),保证现在

  • IDEA配置maven环境的详细教程(Unable to import maven project报错问题的解决)

    IDEA配置maven环境 一.配置maven本地环境 先参照以下博客进行maven的安装,配置 IDEA 如何搭建maven 安装.下载.配置(图文) 使用IntelliJ IDEA 配置Maven(入门) maven本地环境配置成功 二.IDEA配置maven环境 1.使用IDEA内置maven及默认配置 ​需要修改IDEA内置maven的setting.xml文件,更改中央仓库的地址,否则下载jar包会极其的慢. ​以下是默认的maven配置,其中 .m2这个文件夹不是自己创建的,是IDE

  • 解决MyEclipse中Maven设置jdk版本jdk1.8报错问题

    今天安装了jdk1.8.tomcat8.和maven3.5.2,弄好后在myeclipse新建了一个maven项目,项目默认是jdk1.5,如图一,我把它改成jdk1.8,项目就报错了,如图二,然后update project后又变成jdk1.5了. 图一: 图二: 解决方法: 打开maven项目的pom.xml文件, 在build节点下加入下面这段代码 ,然后在选中项目右键-->maven4myeclipse-->update project...就能更新为jdk1.8了.如图三,现在项目已

  • 解决maven启动Spring项目报错的问题

    第一个问题 java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer 出现原因主要是 javax.servlet-api 在运行时将spring容器当成了servlet容器出现类型转换错误. 解决方法: 在pom.xml文件中修改 javax.servlet-a

  • Java MAVEN 工程pom配置报错解决方案

    错误表现 如下图示,这两处可能报错 发生原因 一个pom文件里面,只能有有一对denpendencies标签,所有的配置都要放入这个dependencies标签 解决方法 将多余的dependencies删掉,只留下一对dependencies,所有的配置信息都写在这一对标签内 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • Maven发布封装到中央仓库时候报错:no default secret key

    今天因为发布swagger-spring-boot-starter做一个问题的修复,然后碰到了下面这个问题,记录一下解决过程,帮助后续碰到类似问题的童鞋: *gpg: WARNING: "--no-use-agent" is an obsolete option - it has no effect gpg: no default secret key: No secret key gpg: signing failed: No secret key 我们可以用gpg的命令来看一下当前

  • 解决Maven 项目报错 java.httpservlet和synchronized使用方法

    使用java8 的lanmbe表达式时,使用java1.8编译,则会报错 需要在pom.xml的<bulid></build>中添加 <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</versi

  • 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.c

  • maven install报错中程序包xxx不存在的问题解决

    目录 问题 解决 1.依赖未声明或者未下载成功 2.引用的是本地模块,但是未打包到本地maven仓库 3.父子项目包名不一致 注意事项 4.maven仓库路径不对 5.重启idea 6.清空target目录 问题 项目是springcloud项目,在maven install某一个项目时报错: 程序包com.example.commons.application不存在 解决 1.依赖未声明或者未下载成功 首先出现这个问题最常见的原因是jar包未引入,需要在pom中引入对应的jar包,其次检查这个

  • Python使用pickle模块报错EOFError Ran out of input的解决方法

    本文实例讲述了Python使用pickle模块报错EOFError Ran out of input的解决方法.分享给大家供大家参考,具体如下: 遇到了 EOFError:Ran out of input 不到为什么这样,最后用捕获异常的办法解决掉了,暂时对程序本身没有啥影响,代码如下: # coding=utf-8 import pickle def usr_date(): try: with open('usr_date.pkl','rb') as f: return pickle.load

  • mysql登录报错提示:ERROR 1045 (28000)的解决方法

    本文分析了mysql登录报错提示:ERROR 1045 (28000)的解决方法.分享给大家供大家参考,具体如下: 一.问题: 公司linux系统的mysql数据库root用户设置过密码,但常常用命令'mysql -u root -p'登录报错,有时又能登录.登录报错信息为: [root@localhost ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localho

  • 安装CentOS 6.x报错"Disk sda contains BIOS RAID metadata"解决方法

    今天在安装CentOS6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda 这种情况在Ubuntu,SUSE都有类似的情况,只是提示不太一样. 有时候是sda,有时候是sdb. 感觉是这块硬盘以前是做过raid,现在不认.怎么办. 进入安装选择菜单时 按TAB键,会进入到Linux

  • 安装CentOS 6.x报错"Disk sda contains BIOS RAID metadata"解决方法

    今天在安装CentOS6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda 这种情况在Ubuntu,SUSE都有类似的情况,只是提示不太一样. 有时候是sda,有时候是sdb. 感觉是这块硬盘以前是做过raid,现在不认.怎么办. 进入安装选择菜单时 按TAB键,会进入到Linux

  • MySQL报错:sql_mode=only_full_group_by的4种轻松解决方法(含举例)

    目录 前言​ 方法一:直接修改数据库配置 方法二:修改数据库配置(永久生效) 方法三:使用 any_value() 或 group_concat() 方法四:开动脑筋,修改代码 总结 前言​ 作为初学者,我们在使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已.其中有一种报错,sql_mode=only_full_group_by,十分常见,每次都是老长的一串出现,然后带走你所有的好心情 出现这样的报错,并不是因为你的代码写得不好,而是因为在MySQL 5.7后,MySQL默认开启了SQ

  • Android程序报错程序包org.apache.http不存在问题的解决方法

    Android Studio 2.1中使用 Android SDK 6.0(API 23),加载融云Demo时,报错: 解决办法: Android 6.0(api 23)已经不支持HttpClient了,在build.gradle中 加入 useLibrary 'org.apache.http.legacy'就可以了,如图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • 控制台报错object is not a function的解决方法

    今天反馈过来一个BUG,说一个页面的功能用不了.打开控制台发现报错:object is not a function. 感觉很奇怪,这块的功能最新没动过怎么会突然出问题了呢?上线时主流浏览器都测试过了呀. 虽然奇怪,但是还的解决问题.看着代码发现一个radio对象的name属性和一个function name重名了.代码如下: <body> <input type="radio" name="test" onclick="test();&

  • tomcat启动报错:java.util.zip.ZipException的解决方法

    发现问题 早上起来报错误,Jenkins打包到tomcat服务器,死活启动不起来,一些定时任务也没跑成功. 报错如下: org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context [/test] java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native

随机推荐