Springboot 多module打包方案

Springboot 多module打包问题(依赖不存在)解决方案:

参考项目结构如下:

说明: web模块为最终的启动模块,web->service->manager->dao->entity+common

方案1(实际采用):

(1)在最外层父pom:

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>

        <resource>
            <directory>src/main/resources</directory>
            <!-- 是否过滤资源文件,替换maven属性 - 不过滤,否则过滤xlsx文件导致乱码,XSSFWork读取格式异常 -->
            <filtering>false</filtering>
            <includes>
                <include>**/*</include>
                <include>mapper/*.xml</include>
            </includes>
        </resource>
    </resources>

</build>

(2)其他子模块POM(非Springboot启动类: common,entity,dao,manager,service):

无需指定<build/>

(3)Springboot启动类子模块POM(web):

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <configuration>
            <mainClass>com.xxx.MxVehiclePartsApplication(此处替换为相应Springboot启动类)</mainClass>
         </configuration>
         <executions>
            <execution>
               <goals>
                  <goal>repackage</goal>
               </goals>
            </execution>
         </executions>
      </plugin>
   </plugins>
</build>

执行mvn package后,可在启动模块(web)target下看到*.jar即为可执行的jar包;

扫描二维码关注公众号,回复: 9986488 查看本文章


方案2:

(1)在最外层父pom:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.xxx.MxVehiclePartsApplication(此处替换为相应Springboot启动类)</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>

        <resource>
            <directory>src/main/resources</directory>
            <!-- 是否过滤资源文件,替换maven属性 - 不过滤,否则过滤xlsx文件导致乱码,XSSFWork读取格式异常 -->
            <filtering>false</filtering>
            <includes>
                <include>**/*</include>
                <include>mapper/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>

(2)其他子模块POM(非Springboot启动类: common,entity,dao,manager,service):

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

(3)Springboot启动类子模块POM(web):

无需指定<build/>

发布了56 篇原创文章 · 获赞 6 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/luo15242208310/article/details/100141368