程序包 applets.user.service.UserService 不存在-2022新项目

一、问题由来

  接上一篇文章使用maven进行打包时报中文乱码错误,经过多次尝试后最终解决问题,显示出真正的错误信息如下:

程序包 applets.user.service.UserService 不存在
找不到符号20

因为工作原因,包名有改动,可是错误信息是一模一样的。看到这个真实的错误信息后,才搞清楚错误提示信息。自己

的代码中存在的问题是有一个公共模块中所有的类,其他模块都不能正常引入。写代码的时候可以导入,可是在将模块

进行打包的时候,就报了上面的错,让人费解。
二、问题分析

  可以确定的一点是,公共模块可以打成jar包,自己也去自己的本地仓库中查看了打包后的信息,发现都没有问题,

打好的jar包在仓库中放着,其他说明文件也都有。就类似于下面这种,只有正确的打成jar包后,其他项目才能够引用。

 

 

 公共模块打成的包没问题,可是其他模块却不能引入公共模块,这就很奇怪?自己立马开始搜索问题的答案,然后尝试各种解决办法,

因为只有解决这个这个问题,项目才能够正常启动,如果这一步都没有解决,那么其他的什么都别谈了。

三、解决方案

尝试方式一:

执行命令进行清理
 mvn -U idea:idea

问题未解决.
https://blog.csdn.net/qq_39246334/article/details/109393354

 

尝试方式二:

清除idea缓存,然后重启IDEA 问题未解决;
开启自动加载jar包,问题未解决;
import快速导入,问题任然未解决。
https://www.cnblogs.com/lodalo/p/13678274.html

 

尝试方式三:

配置Maven的一些信息  问题未解决
https://blog.csdn.net/lzzdhhhh/article/details/105907772

 

尝试方式四:

单独使用命令清理IDEA插件 问题未解决
https://www.jianshu.com/p/47a058d15ec1

 

尝试方式五:
说是设置下载依赖包的源码 这听起来有些扯淡  CSDN干的事 还是未解决

https://blog.csdn.net/m0_49573573/article/details/121680390

 

自己在此期间也看了很多的其他博文,然后开始分析自己遇到的问题。

自己的项目 A 下面有三个子模块 B/C/D,C是抽取的公共模块,供其他模块调用。打包时,C模块可以正常打包,

可是其他模块依赖C模块的B/D打包时,报错。自己在打包时仔细看输出日志,打第一个模块C的jar包时,如果不添加任何配置,则报错

unable to find main class意思是找不到启动类。解决这个问题后,接着就出现上面的问题,可以打包了,可是其他项目不能引用C模块,

报错程序包xxx不存在找不到符号。后来了解到编译、打包插件有两类,一类是maven自带你的,一类是spring-boot集成的。

自己去看了以往开发的项目,在公共模块中,根本就没有引入 spring-boot-maven-plugin 这个依赖。公共模块打成jar包仅仅是提供给其他模块调用,
其本身并不会启动项目。
了解到这点后,自己尝试着搜索,模块中如何排除 spring-boot-maven-plugin 依赖,找到一篇博文,在C模块中添加配置如下,

<build>
<!-- war、jar的名称 -->
<finalName>${artifactId}-${version}</finalName>
<plugins>
<!-- 编译插件 -->
<plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
      <skip>true</skip>
    </configuration>
</plugin>
</plugins>
</build>

然后重新导入maven配置,重新打包,问题解决。

 

问题解决,之后搜索的时候发现还有一篇博文和我遇到类似的问题,参考 https://www.cnblogs.com/xiadongqing/p/12979764.html
之后的几个模块都采用这种方式进行处理,完全可行。

posted @ 2022-05-12 21:05  一只爱阅读的程序员  阅读(290)  评论(0编辑  收藏  举报