Maven - 编译报错:程序包 XXX 不存在(多模块项目)

问题描述

编译报错:程序包 XXX 不存在(多模块项目)

原因分析

  • 检查依赖模块 pom 文件,看是不是引入了如下插件
html 复制代码
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

spring-boot-maven-plugin 插件作用

为了创建一个可执行的 jar 包,接下来看看加插件打包的结构

不加插件的结构

对比发现是多了 BOOT-INF 目录,比如 A 项目引入了此插件,B 项目依赖了A pom,此时 B 编译就会有问题,报错:程序包XXX不存在

解决方案

  • 可以删除上面配置的插件解决问题,也可以修改下面配置解决,添加 configuration 配置(实际就是打包去掉 BOOT-INF 目录)
html 复制代码
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <skip>true</skip>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>
相关推荐
微笑尅乐3 小时前
力扣350.两个数组的交集II
java·算法·leetcode·动态规划
rzjslSe4 小时前
【JavaGuide学习笔记】理解并发(Concurrency)与并行(Parallelism)的区别
java·笔记·学习
青柠编程4 小时前
基于Spring Boot的竞赛管理系统架构设计
java·spring boot·后端
꒰ঌ 安卓开发໒꒱4 小时前
Java面试-并发面试(二)
java·开发语言·面试
Mr.Aholic4 小时前
Java系列知识之 ~ Spring 与 Spring Boot 常用注解对比说明
java·spring boot·spring
月夕·花晨5 小时前
Gateway-断言
java·开发语言·分布式·spring cloud·微服务·nacos·sentinel
西贝爱学习5 小时前
【JDK 11 安装包免费下载 免登录Oracle 】jdk11与jdk8有什么区别?
java·开发语言
宠友信息6 小时前
类似小红书垂直社区APP小程序源码
java·开发语言·微信小程序·小程序·uni-app·开源·web app
yujkss6 小时前
23种设计模式之【享元模式】-核心原理与 Java实践
java·设计模式·享元模式
_extraordinary_6 小时前
Java Servlet(一)--- Servlet hello world的写法,smart tomcat,Servlet代码中的常见问题
java·servlet·tomcat