Erlo

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

2023-10-27 10:30:10 发布   141 浏览  
页面报错/反馈
收藏 点赞

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

1. maven打包方式

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


pom`


jar


war

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

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

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

war:将会打包成war。

2. maven打包插件


maven-jar-plugin
 

maven-shade-plugin
 

maven-assembly-plugin
 

spring-boot-maven-plugin

3. SpringBoot 打包

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


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

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

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


    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                exec
            
        
    

或者通过true标签在打包的时候生成普通jar包,修改如下:


    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                true
            
        
    

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认