一、问题由来

  接上一篇文章使用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
之后的几个模块都采用这种方式进行处理,完全可行。

程序包 applets.user.service.UserService 不存在-2022新项目的更多相关文章

  1. VS2013中Nuget程序包管理器控制台使用入门(三)-项目实战(原创)

    VS2013中Nuget程序包管理器控制台使用入门(三)-项目实战 1.给指定项目安装Newtonsoft.Json ,Version 4.5.11 PM> Install-Package Ne ...

  2. 用命令行工具创建 NuGet 程序包

    NuGet.exe 下载地址 本文翻译自: https://docs.nuget.org/Create/Creating-and-Publishing-a-Package https://docs.n ...

  3. VS2013中Nuget程序包管理器控制台使用入门(二)-如何使用Nuget提供的帮助(原创)

    如何使用Nuget提供的帮助? 1.从get-help Nuget开始,键入“get-help NuGet”以查看所有可用的 NuGet 命令. 用法: PM> get-help Nuget 主 ...

  4. VS NuGet加载本地程序包

    NuGet是VS中非常实用的一个工具,我们可以通过它在线安装想要的程序包,只要右键点击解决方案中的项目的引用,在弹出的菜单中选择“管理NuGet程序包”,然后就可以通过在线搜索找到想要添加的程序包,下 ...

  5. Nuget包管理工具(程序包控制台执行语句)

    NUGET命令 注:使用前确保nuget是最新版本,升级到最新版本有两种方式: (1).CMD将nuget升级到最新版本:nuget update -self (2).扩展中查看nuget是否需要更新 ...

  6. 十六、程序包管理之 rpm

    c语言程序的构建过程 1.程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接--> 可执行程序 开放源码:就是程序码,文本格式的源代码,写给人类看的程序 ...

  7. 错误: 程序包com.sun.istack.internal不存在

    eclipse下maven打包是出现如下错误: [ERROR] D:\code-old\daba_user_mvn\src\main\java\com\dada\transaction\service ...

  8. 解决xp下无法通过windows installer服务安装此安装程序包。您必须安装带有更新版本Wi

    今天装 tortoisegit 的时候发现安装包不能使用.报错无法通过windows installer服务安装此安装程序包.您必须安装带有更新版本Windows Installer服务的Window ...

  9. 安装psacct或acct程序包

    监视Linux用户活动 我认为,对每个想密切监视其服务器/系统上用户活动的Linux/Unix系统管理员来说,psacct或acct是优秀的.必需的应用程序之一. psacct或acct程序包提供了用 ...

随机推荐

  1. 用maven建立一个工程3

    在文件夹里面创建一个新文件夹把工程建立在里面

  2. Netty学习摘记 —— 简单WEB聊天室开发

    本文参考 本篇文章是对<Netty In Action>一书第十二章"WebSocket"的学习摘记,主要内容为开发一个基于广播的WEB聊天室 聊天室工作过程 请求的 ...

  3. 插值方法 - Newton多项式(非等距节点)

    不多话.Nowton插值多项式(非等距节点)代码: 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Wed Mar 25 15: ...

  4. 顺利通过EMC实验(11)

  5. java连接oracle数据库(转)

    在做导游通项目所用到 package org.javawo.test; import java.sql.Connection; import java.sql.DriverManager; /** * ...

  6. python大佬养成计划----flask_bootstrap装饰网页

    flask_bootstrap Bootstrap 是 Twitter 开发的一个开源框架,它提供的用户界面组件可用于创建整洁且具有吸引力的网页,而且这些网页还能兼容所有现代 Web 浏览器. Boo ...

  7. webpack+vue-cli+ElementUI+vue-resource 前端开发

    线上商城项目(电脑0环境)1.安装node.js (参考http://www.runoob.com/nodejs/nodejs-install-setup.html): 2.安装 webpack (全 ...

  8. idea 启动微服务 设置 run dashboard

    微服务如果很多,启动时如果在run窗口,会不是很方便,所以idea中配置了rundashboard,有时不自动出现时,需要进行配置: 配置操作如下: 我的idea版本2020.2 1.在父工程的.id ...

  9. 【Android开发】【第三方SDK】 安卓版分词功能

    功能介绍: 获取剪切板内容,进行分词: 点击分解后的词,填入输入框: 点击叉号将地址拼接起来返回主界面 用途: 增加用户的体验效果,可以直接在微信上复制地址,然后通过此功能确认地址. 附上git地址 ...

  10. java对象有什么重要的?

    3.历史上讲,对象有什么重要的?  [新手可忽略不影响继续学习]早期的编程主要是面向过程的编程,处理的问题都相对的简单,比较过程化,换句话说,就是一步一步从开始到结束,比如第一步进入电梯,第二步关门, ...