打包springboot多模块项目

1.注释掉root模块的pom里的打包代码

2.【关键】对于common模块、实体模块、会被其他模块引入的子模块而言,执行如下打包代码:

<build>
      <plugins>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
              <configuration>
                  <classifier>execute</classifier>
              </configuration>
              <executions>
                  <execution>
                      <phase>none</phase>
                      <goals>
                          <goal>repackage</goal>
                      </goals>
                  </execution>
              </executions>
          </plugin>
      </plugins>
  </build>

原因:如果使用springboot自动生成的 spring-boot-maven-plugin 的这个插件打包的话,生成的Jar包可以直接运行,但是不可依赖!!!!导致依赖该模块的其他模块打包或者运行时会报程序包不存在导致出错!!!!

或者可以直接注释掉这段打包代码,让工具类不包含以上的执行代码,或者是只让application所在的模块写入以下的打包代码【即只让application的类所在模块执行打包代码】:

 <build>
        <plugins>
            <plugin>
                <!--该插件主要用途:构建可执行的JAR -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                    <!--打包本地包-->
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
        </plugins>
    </build>

本人更推荐后一个方法

3.在所要打包的模块中写入

 <packaging>jar</packaging>

4. root模块先skip test命令,然后执行package命令即可,运行application所在的jar包

参考:
[1] . idea运行程序报错 程序包不存在,找不到符号

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐