使用IDEA打包maven多模块相互依赖项目的正确方式

目录

使用场景        

第一种方式:使用idea自带的打包方式

第二种方式:使用maven打包方式(没有使用springboot-maven-plugin插件)

解决办法

总结


使用场景        

        假设有一个父maven项目project,有三个子模块producer,consumer和common,其中producer依赖common,consumer也依赖于common,也就是producer,consumer的pom.xml文件中导入了common模块

第一种方式:使用idea自带的打包方式

快捷键Ctr+Alt+Shift+S弹出以下画面

使用IDEA打包maven多模块相互依赖项目的正确方式_第1张图片

使用IDEA打包maven多模块相互依赖项目的正确方式_第2张图片

使用IDEA打包maven多模块相互依赖项目的正确方式_第3张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第4张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第5张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第6张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第7张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第8张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第9张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第10张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第11张图片

查看打包出来的jar 

 使用IDEA打包maven多模块相互依赖项目的正确方式_第12张图片

可以看到这种打包方式打包出来的jar包中包含了common模块 

第二种方式:使用maven打包方式(没有使用springboot-maven-plugin插件)

使用IDEA打包maven多模块相互依赖项目的正确方式_第13张图片

 使用IDEA打包maven多模块相互依赖项目的正确方式_第14张图片

查看打包后的jar包 

 使用IDEA打包maven多模块相互依赖项目的正确方式_第15张图片

可以看到只有consumer模块,没有common模块,由于consumer依赖于common,那么这样导致的后果,就是在运行consumer模块时会报错,找不到common中的类,因为打包时,并没有将common模块也一起打包进来。

解决办法

将maven打包的common.jar和consumer.jar放在同一个目录下

总结

第一种打包方式可以避免依赖的模块没有被一起打包进来

第二种打包方式需要注意依赖的模块并没有被一起打包进来

你可能感兴趣的:(java,intellij-idea,maven,java)