当前位置: 代码网 > it编程>编程语言>Java > idea Maven Springboot多模块项目打包时90%的问题及解决方案

idea Maven Springboot多模块项目打包时90%的问题及解决方案

2025年08月04日 Java 我要评论
1. 前言之所以写这篇文章是因为在使用maven的过程中遇到了许多问题,在这里作为记录总结2. 问题使用idea打包的时候编译偶尔成功偶尔失败,本地运行能成功,有时能打包成功但是发现使用 jar 包跑

1. 前言

之所以写这篇文章是因为在使用maven的过程中遇到了许多问题,在这里作为记录总结

2. 问题

使用idea打包的时候编译偶尔成功偶尔失败,本地运行能成功,有时能打包成功但是发现使用 jar 包跑的时候会出现类找不到的情况,最终经过排查发现有部分的类打包的时候打包不进去。

3. 解决办法

关闭idea,找到对应项目的目录删除 .idea 文件,让 idea 去重构项目

删除 maven 本地仓库下当前项目的对应的包,以 org.apache 为例,删除该文件夹下的所有文件夹。

清除 本地maven 仓库中下载失败的jar 包

#1. 创一个.bat文件使用记事本打开 
#2. 修改路径为maven本地仓库路径
#3. 保存退出,双击执行
set repository_path=d:\xxxx\apache-maven-3.3.9\repository
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%repository_path%\*lastupdated*"') do (
    del /s /q %%i
)
rem 搜索完毕
pause

刷新maven本地仓库,顺便检查一下 maven 配置和 maven 的jdk 配置

在idea中file -> settings -> -> build,execution -> build tools -> maven -> repositories

重启idea(当然也可以选择reload,个人建议重启idea),reload 有时会出现更新不上的情况。

重启后,会发现可能有部分模块引用了其它模块的jar会报错,这是正常现象,这是因为你没有对公共模块进行打包,导致引入了公共模块的其它模块报错,但如果除了公共模块之外还有其它的jar包还是报错这就得检查一下maven 本地仓库是否下载成功了。

指定打包方式:

  • 父项目指定打包方式为pom
  • 公共模块例如 common 、utils、entity 这些模块,建议打成jar包
  • 可执行模块打成war 包
<! -- 具体指定打包方式,在pom文件的properties 上方添加: -->
<packaging>pom</packaging>
<packaging>jar</packaging>
<packaging>war</packaging>

在可执行模块添加 springboot maven 打包插件,其它模块无需添加,最好指定主类。

    <build>
        <plugins>
            <plugin>
                <groupid>org.springframework.boot</groupid>
                <artifactid>spring-boot-maven-plugin</artifactid>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainclass>xxx.xxx.mainclass</mainclass>
                    <cleancache>true</cleancache>
                    <sourcedirectory>src/main/java</sourcedirectory>
                    <fork>true</fork>
                    <addresources>true</addresources>
                    <classifier>exec</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>

在公共项目先进行打包

所有公共项目全部打包之后需要reload 一下,重新导入一下jar,导入之后,所有的如果导入成功就不会报错了,这里还是建议重启,idea 有时会抽风存在导入不成功的情况。

在父项目中执行package打包

4. jar 包冲突

这里推荐一个插件,maven helper , 在idea setting 里面下载maven helper 插件。

下载后进入pom.xml 文件,点击dependency analyzer,就能看到项目中依赖的版本了,如果是冲突的jar 就会爆红。

选择爆红的jar,鼠标右击选择exclusion,就能排查冲突的依赖了,然后点击 reimport 和 refresh ui,就能看到之前冲突的jar被排查了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com