SpringBoot 使用 Maven 打包提示“程序包xxx不存在,找不到符号”错误

这篇具有很好参考价值的文章主要介绍了SpringBoot 使用 Maven 打包提示“程序包xxx不存在,找不到符号”错误。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在SpringBoot多模块项目中,如果使用Maven进行包管理,有时候会提示“程序包xxx不存在,找不到符号”错误,为什么会出现这个错误,我们下面先从maven打包的方式进行说起。

1. maven打包方式

maven打包有三种方式 pom、jar、war。在pom.xml 文件中声明的方式分别如下:

<!-- 1. pom方式 -->
<packaging>pom</packaging>`

<!-- 2. jar方式 -->
<packaging>jar</packaging>

<!-- 3. war方式 -->
<packaging>war</packaging>

以上三种打包方式不同出现在同一个 pom 文件中。

pom:用在父级工程或聚合工程中,必须指明打包方式为pom。子module可继承父工程依赖。

jar:工程的默认打包方式。

war:将会打包成war。

2. maven打包插件

<!-- 1. maven 默认打包插件,用来创建 project jar -->
maven-jar-plugin
 
<!-- 2. 用来打可执行包 -->
maven-shade-plugin
 
<!-- 3. 支持定制化打包方式,例如 apache 项目的打包方式 -->
maven-assembly-plugin
 
<!-- 4. springboot打包插件 -->
spring-boot-maven-plugin

3. SpringBoot 打包

Spring Boot 中默认打包成可执行 jar ,可以通过 java -jar xxx.jar 命令执行但是不可以被其他的应用所依赖。普通的 jar 不可以通过 java -jar xxx.jar 命令执行,普通的 jar 主要是被其他应用或模块依赖。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

如上springboot引导程序生成的pom.xml文件中默认的maven插件,其打包的Jar包可以直接运行,但是不可依赖!

如果子模块被打包成可运行 jar 包则 SpringBoot 项目编译运行时提示“程序包xxx不存在,找不到符号”错误。我们可以通过<classifier>exec</classifier>标签在打包的时候生成普通jar包和可执行jar包,修改如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <classifier>exec</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>

或者通过<skip>true</skip>标签在打包的时候生成普通jar包,修改如下:文章来源地址https://www.toymoban.com/news/detail-711321.html

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

到了这里,关于SpringBoot 使用 Maven 打包提示“程序包xxx不存在,找不到符号”错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot打包的jar,使用java -cp报错:找不到或无法加载主类

    问题 springboot打包的jar,使用java -cp报错:找不到或无法加载主类 解决办法 springboot打包的文件与一般java启动方式有一些差别 需要修改为使用以下命令,后面增加类:org.springframework.boot.loader.PropertiesLauncher,如下: java -cp .:test-0.0.1-SNAPSHOT.jar -Dloader.main=com.aa.common org.springfram

    2024年02月16日
    浏览(26)
  • 解决idea中依赖报错找不到这个包,但是本地maven仓库中却存在此依赖包问题

    问题: intellj idea新打开一个项目,经过项目加载完毕后,但是发现maven的依赖存在一些无法下载到的问题。 原因一: 配置的私服和中央仓库中本身就无此包(这属于基本异常,不讨论) 原因二: 本地仓库中存在此包,当时却无法加载到,此类现象更可能是拷贝了其他电脑的

    2024年02月13日
    浏览(20)
  • java: 程序包 com.xxx.xxx 不存在万能解决方法

    第一种解决方法:maven首选 maven有时候也会出现问题,正确的万能方法,直接去下载缺失的包,然后放到库里,接下来是解决案例: 问题:在使用idea运行项目的时候报错 java: 程序包sun.misc不存在 百度java包,随便找一个下载,下载好了打开压缩包, 在项目文件夹建一个新文件

    2024年02月09日
    浏览(13)
  • Idea 2023.2 maven 打包时提示 waring 问题解决

    idea 2023.2 使用 Maven 打包 ,控制台输出 Waring 信息 根本原来在于所使用的 Maven 版本 idea 2023.2 内置的 Maven 版本为 3.9.2,这个警告好像是Maven 4不支持的的 Plugin的警告。 具体的可以看下stackoverflow 这个连接 stackoverflow Maven 3.9.2 发版说明 降低Maven 版本号 下载 Maven3.8.8 https://dlcdn.a

    2024年02月15日
    浏览(19)
  • Error:(x,x) java: 程序包com.xxx.xxx不存在

    【问题描述】: 项目为SpringBoot 项目多个 module依赖,对子模块进行 compile/install 时出现了依赖的类(此类是自己写的类)不存在。 【解决办法】: 将父工程中使用的 springboot插件注释掉,如下代码:

    2024年02月21日
    浏览(13)
  • dockerfile ENTRYPOINT 执行.sh脚本提示找不到文件或文件不存在 No such file or directory

    我这里记录的是我遇到的一种特殊情况,如果你也遇到了这个问题,且都试了在百度中找到的解决方法还没有解决可以看看是不是和我遇到的问题一样。 在Dockerfile中,我ADD了两个文件,一个是jar包,一个是一个执行jar包的.sh文件 但是在使用命令: 就会提示 /bin/sh: 0: cannot

    2024年01月21日
    浏览(21)
  • maven多模块----子模块相互依赖打包时报错找不到类的解决方案

    在被依赖的模块pom文件中加上如下配置: 注:如果你的配置文件就是如上配置,那么你需要在maven打包的时候,install一下,就可以依赖了

    2024年02月16日
    浏览(27)
  • maven打包失败:the pom for XXX is missing, no dependency information available 问题解决

    问题描述:springcloud项目,idea打包pacake、compile时报错,THE POM for ... is missing,no dependency information available,此时清理缓存,和clean之后还是会报这个错。 查询报错信息是因为pom文件丢失才会报这个错,但是项目中pom文件是存在的,并非丢失。 由于是多项目管理,项目是有相互依

    2024年02月11日
    浏览(21)
  • C# 提示:无法加载 DLL“XXX.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    今天再调试程序时发现程序再笔记本上运行正常,然而拷贝到客户主机上之后出现了(System.DllNotFoundException: 无法加载 DLL“msc.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。)的问题,经过再三调试, 1、确认CPU平台为x86,正常 2、dll的路径,正常 经过再三的排除,发

    2024年02月11日
    浏览(21)
  • 小程序抓不到包可能存在的问题

    一、为什么抓不到小程序的数据包 (1)代理问题 是否为代理端口没有设置好了 (2)证书问题 有没有导入证书 证书是否成功导入到对应的模拟器或者浏览器中 证书是否被应用信任         //安卓系统7.0以上版本,微信7.0以下版本,微信会信任系统提供的证书;安卓系统

    2024年02月09日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包