maven install报错中程序包xxx不存在的问题解决
作者:wu55555 发布时间:2023-03-05 03:06:51
问题
项目是springcloud项目,在maven install
某一个项目时报错:
程序包com.example.commons.application不存在
解决
1、依赖未声明或者未下载成功
首先出现这个问题最常见的原因是jar包未引入,需要在pom中引入对应的jar包,其次检查这个包是否声明版本,且对应的包是否下载成功,如果下载不成功会在pom中爆红
2、引用的是本地模块,但是未打包到本地maven仓库
需要注意的是如果是引入的本地的其他模块,那么需要先将被引用的这个模块先maven install
打包到本地仓库。然后当前模块才能正常引入到这个模块
3、父子项目包名不一致
这个问题原因也是我这里遇到的原因,不注意的话很难排查,父项目中声明的包名是org.xxx
,但是子项目中声明的包名却是com.xxx
在pom中将父子模块的包名统一即可
<groupId>org.xxx</groupId>
注意事项
修改完成后打包时需要注意,可能你再次打包还是报错,这是因为我们给子项目打包时需要引入父项目,而父项目报错,所以打不上。
而给父项目打包又因为modules里面声明了子项目,而子项目报错,所以又会导致父项目打不上。
这父子都打不了那怎么办呢?答案是想让他们暂时断绝下父子关系
1、先在父项目pom的modules中将改子项目的module删掉,然后打包父项目,因为没有了报错的子项目那么父项目是可以打包成功的。
<modules>
<module>common</module>
<module>gateway</module>
<!-- <module>service</module>-->
<!-- <module>service-api</module>-->
</modules>
2、然后再来打包子项目,需要注意的是子项目中要通过parent标签声明父项目
<parent>
<groupId>com.example</groupId>
<artifactId>fleet_manager_system1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
3、然后再回到父项目中将删除的子项目的module恢复,再次打包父项目,这时因为没有子项目报错,那么父项目也能成功打包了
<modules>
<module>common</module>
<module>gateway</module>
<!-- <module>service</module>-->
<module>service-api</module>
</modules>
4、如果有多个子项目打包不成功了,那么就通过上述的步骤循环往复,最终就会迎来我们所期待的BUILD SUCCESS
4、maven仓库路径不对
开发工具中打包的maven仓库的地址不对,通过settings>Build,Execution,Deployment>Build Tools>Maven
中的Local repository
项可以查看到开发工具中配置的本地Maven仓库地址,检查这个地址是否是你真实的maven仓库地址。
有一个检查的方式,就是直接进入到该路径下,看看有没有对应包名路径的.jar
文件,如果有则说明配置正确,如果没有说明并没有可能是路径不对,也可能是上述原因1,2
5、重启idea
有时因为开发工具的问题,可能会导致一直加载不出来,如果实在找不到问题所在时,不妨尝试重启开发工具,甚至重启电脑,可能有奇效。
6、清空target目录
有时因为开发工具问题,可能target目录一直未刷新,所以在maven install
之前,先执行maven clean
将历史数据清空下再打包
来源:https://juejin.cn/post/7094052602542817316


猜你喜欢
- 本文实例讲述了C#图像处理之边缘检测(Smoothed)的方法。分享给大家供大家参考。具体如下://定义smoothed算子边缘检测函数pr
- 一、javaweb中前端向后端传值的几种方式1.查询字符串的方式即在请求地址后拼接上请求参数,多个参数以&连接- 表单方式提交2.第
- SpringBoot访问html和js等静态资源配置把静态资源放到resources/static下,这是springboot静态资源默认访
- 1 引入 pom 包<dependency> <groupId>io.github.res
- 一、关系型数据库SQLIte 每个应用程序都要使用数据,
- 我们都知道且经常用到 unsigned 关键字,但有没有想过,与此对应的 signed 关键字有啥用?int i = 0;signed in
- 题目要求思路:模拟Javaclass Solution { public int maximumSwap(int
- Java中的Runable,Callable,Future,FutureTask,ExecutorService,Excetor,Excut
- 1、CS、BS架构定义CS(Client/Server):客户端----服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安
- 本文实例讲述了C#实现图形位置组合转换的方法。分享给大家供大家参考。具体实现方法如下:using System;using System.C
- 有人在社区问到:C#调用Oracle中自定义函数的返回值时,无法正常调用。但在PL/SQL中正常调用返回。于是动手一试:1、准备函数(Ora
- 使用后台返回验证码图片,验证码存到session中后端实现校验,前端只展示验证码图片。本篇用SpringBoot Thymeleaf实现验证
- 详解HDFS多文件Join操作的实例最近在做HDFS文件处理之时,遇到了多文件Join操作,其中包括:All Join以及常用的Left J
- 在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析。一、
- 引言对于Nacos大家应该都不太陌生,出身阿里名声在外,能做动态服务发现、配置管理,非常好用的一个工具。然而这样的技术用的人越多面试被问的概
- Glide 4.0由Google的各种团队内部使用,4.0被认为是内部稳定的。但外部用户可能会发现内部尚未发现的问题。因此,将此作为RC发布
- 结束firefox的进程,一句代码就够了,如下:Runtime.getRuntime().exec("taskkill /F /I
- 我们知道,Java和MySQL中的数据类型是不同的,Java中除了基本数据类型,还有对象。有时候使用MySQL存储数据,或者从MySQL中读
- java里有数字long来表示大的整数,如果两个数字的范围超过了long,要做加法算法怎么做呢?这个问题在面试中经常碰到,如果之前没有经历的
- 这篇文章主要介绍了Java多态中动态绑定原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以