解决Maven子模块之间相互引用分析

不点 阅读:319 2021-06-15 12:15:24 评论:0

 将A、B、C代码合并模块D,我们把它当做一个辅助构建模块,然后让A、B、C模块都依赖于D模块,这样的话就可以成功编译A、B和C模块

要想把A、B、C三个模块整合在一起编译,需要借助build-helper-maven-plugin插件,这个插件在Maven构建周期提供一些辅助功能,下面列出插件的提供的功能列表:

  • build-helper:add-source:添加更多的构建源码目录

  • build-helper:add-test-source:添加更多的测试源码目录

  • build-helper:add-resource:添加更多的资源目录

  • build-helper:add-test-resource:添加更多的测试资源目录

  • build-helper:attach-artifact:在安装和部署周期附加artifacts

  • build-helper:maven-version:添加一个指定当前Maven版本的属性

  • build-helper:parse-version:添加一个指定组件版本的属性

  • build-helper:released-version:决定当前项目的最终版本

  • build-helper:remove-project-artifact:从本地资源库中移除项目的artifacts

  • build-helper:reserve-network-port:Reserve a list of random and unused network ports.

在这里我们要用到build-helper:add-source这个功能,将模块A、B、C的源码路径加进来。

我们再添加一个辅助模块D,在辅助模块D中使用build-helper-maven-plugin插件,然后让模块A、B、C都依赖于辅助模块D

<properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
         <module.a.src>../../module/module-A/src/main/java</module.a.src> 
         <module.b.src>../../module/module-B/src/main/java</module.b.src> 
         <module.c.src>../../module/module-C/src/main/java</module.c.src> 
   </properties> 
    <build> 
         <plugins> 
                 <!-- 解决模块相互依赖,综合所有相互依赖代码统一编译 --> 
                 <plugin> 
                         <groupId>org.codehaus.mojo</groupId> 
                         <artifactId>build-helper-maven-plugin</artifactId> 
                         <executions> 
                                 <execution> 
                                         <id>add-source</id> 
                                         <phase>generate-sources</phase> 
                                         <goals> 
                                                 <goal>add-source</goal> 
                                         </goals> 
                                         <configuration> 
                                                 <sources> 
                                                         <source>${module.a.src}</source> 
                                                         <source>${module.b.src}</source> 
                                                         <source>${module.c.src}</source> 
                                                 </sources> 
                                         </configuration> 
                                 </execution> 
                         </executions> 
                 </plugin> 
         </plugins> 
   </build>

标签:Spring Boot
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
KIKK导航

KIKK导航

排行榜
关注我们

一个IT知识分享的公众号