idea 多层级模块 maven打包

springCloud多层级模块打包 maven 坑记

  1. 工具idea,springcloud,springboot,maven(>=2.1.x)

  2. 组织(多层模块)

  3. 环境整理

  • parent(packaging:pom)
    • moduleA(packaging:pom)
      • modX(packaging:jar)--runMainClass--service1
      • modY(packaging:jar)
    • moduleB(packaging:pom)
      • modK(packaging:jar)--runMainClass--service2
      • modZ(packaging:jar)
    • moduleC(packaging:pom)
      • modT(packaging:jar)
      • modE(packaging:jar)

以上模型为modX和modK为可互相调用的微服务,modT和modE作为公开模块被其他模块依赖
最终希望打包后的结果是得到modK.jar的可运行jar包(modX和modK均为不同的对外接口启动微服务模块)
4. pom调整

  parent-pom  
    <module>moduleA</module>  
    <module>moduleB</module>  
    <module>moduleC</module>  
  module(A|B|C)-pom  //ABC模块的pom配置
    <module>moduleX</module>  
    <module>moduleY</module>  

  1. modK和modX的配置中需要添加,其他非main运行的jar包不要添加该标签
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <finalName>AppName</finalName>
                    <fork>true</fork>
                    <mainClass>com.xxx.xxx.XXXApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

parent为最外层的pom,ABC是parent的子pom,ABC又有各自的子模块package均为jar.
要保证ABC都继承了相同的父模块'parent', pom里拥有module标签的packaging都为pom
最终打包在parent的lifecycle里package就可以成功打包了。

posted @ 2020-11-11 21:38  nxslow  阅读(378)  评论(0)    收藏  举报