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 2021-08-10 16:55  @ 小浩  阅读(7387)  评论(0编辑  收藏  举报