springboot项目打包时提示“程序包xxx不存在,找不到符号”

springboot多包工程,在使用maven进行打包的时候,一直提示“程序包xxx不存在,找不到符号”,但项目是可以正常启动运行的,开始一直以为是maven哪里没有配置好导致的,后来才发现原来是springboot的maven插件导致的

springboot项目打包时提示“程序包xxx不存在,找不到符号”

项目结构:

xxx-parent:顶级父工程
xxx-a:子项目1
xxx-b:子项目2
xxx-c:子项目3

依赖关系:

a -> b -> c,从左到右,依次被依赖(c依赖b,b依赖a)

问题场景:

在使用mvn package的时候,一直提示“程序包xxx不存在,找不到符号”,开始以为是依赖的上层包没打好,仔细检查后发现都没问题,就算将本地仓库中的依赖包清理之后,重新install打包也还是有这个问题

原因分析:

因为之前的springmvc出现过类似的问题(Maven打包失败,提示“找不到符号”),所以一开始也以为是本地仓库的缓存所致,浪费了好长时间,后来才发现原来是springboot自身的编译插件spring-boot-maven-plugin导致的。

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

如上,就是springboot的maven插件,用这个插件打包的Jar包可以直接运行,但是不可依赖!

解决方案(三选一):

1、不要将此插件放到顶级父工程中,在需要打成可执行jar的地方添加就好了,如果是需要被依赖的,就不要添加此插件(如上述案例中,就是xxx-a、xxx-b不加,xxx-c需要加);
2、在需要对外提供依赖的项目的pom里设置(如本项目的xxx-a、xxx-b),这样设置会让项目生成两个jar:一个可执行jar,一个可依赖的jar;

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 生成可执行的jar的名字:xxx-exec.jar -->
                <!-- 不固定,写成abcd都可以 -->
                <classifier>exec</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>

3、在configuration中加入skip标签,取消生成可执行jar;

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

参考:
https://www.jianshu.com/p/67b040788a41

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SpringBoot项目编译运行提示程序包xxx不存在不到符号”错误,这通常是由于项目依赖的jar包没有正确引入所致。为了解决这个问题,可以尝试以下三种解决方案之一。 解决方案一: 检查项目的pom.xml文件,确保所需的依赖已经正确添加。可以使用Maven的dependency标签来添加所需的依赖项。例如,如果需要引入名为xxx的包,可以在pom.xml文件中添加以下代码段: ``` <dependency> <groupId>xxx</groupId> <artifactId>xxx</artifactId> <version>xxx</version> </dependency> ``` 解决方案二: 如果已经确认依赖项已正确添加,但仍然出现不到包的错误提示,可能是由于项目maven插件导致的。可以尝试在pom.xml文件的build标签中检查并修改spring-boot-maven-plugin插件的配置,确保其与项目的要求一致。例如,可以按照以下方式配置spring-boot-maven-plugin插件: ``` <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` 解决方案三: 如果以上两种解决方案都没有解决问题,可能是项目结构或其他配置有误。建议仔细检查项目的结构,确保所有的文件和目录都处于正确的位置,并且没有任何拼写错误或其他格式问题。 总结来说,当出现SpringBoot程序包不存在的错误,我们可以通过检查项目依赖、修改maven插件配置和仔细检查项目结构来解决这个问题。希望这些解决方案能够帮助您解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot项目编译运行提示程序包xxx不存在不到符号”解决办法(已解决)](https://blog.csdn.net/weixin_46053707/article/details/104623641)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值