随笔 - 684  文章 - 0  评论 - 156  阅读 - 399万

Maven实现多module打包成单个jar

首先我们开发的项目一定会是一个父项目和多个子项目

 

 

 

1:我这里有多个子项目,多个项目都继承父项目
2:start模块最终会依赖所有的模块,如果我们在打包前不对父项目进行先打包那么,我们start项目是无法打包成功的
如何打包:
1:在我们父项目中将父项目的打包方式设置为pom

  

复制代码
<packaging>pom</packaging>
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                        <!--be careful 在parent pom 里面一定要加这个属性--> 
                          <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
复制代码

 

  


如果我们不将父项目的打包方式设置为pom,会使我们子项目打包失败
注: 如果您有多个Maven项目,并且它们都有相似的配置,则可以通过提取那些相似的配置并创建一个父项目来重构项目。因此,您要做的就是让您的Maven项目继承该父项目,然后将这些配置应用于所有这些项目。
POM:用在父级工程或聚合工程中,用来做jar包的版本控制,必须指明这个聚合工程的打包方式为pom,
2:在其它项目的pom.xml里添加

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

 

子模块默认打包方式为jar

3:在start项目模块的pom.xml里添加

  

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

 


参考链接:https://blog.csdn.net/weixin_44787319/article/details/114339075

参考链接:https://www.freesion.com/article/2624915780/

posted on   @ 小浩  阅读(7876)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2016-08-10 mysql内置函数,在mysql里面利用str_to_date()把字符串转换为日期格式
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示