zoukankan      html  css  js  c++  java
  • 解决Maven子模块之间相互引用

     将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>
  • 相关阅读:
    有限状态机(FSM)的简单理解和Python实现
    【Papers】Lane-Detection 近期车道线检测论文阅读总结
    刷LeetCode的简易姿势
    数码时代的效率生活
    轻量化模型训练加速的思考(Pytorch实现)
    编程之美!从线程池状态管理来看二进制操作之美
    没想到,Git居然有3种“后悔药”!
    交易系统高并发下的幂等性设计原则
    集群环境中使用Zookeeper实现分布式幂等控制
    Elasticsearch 入门到高手的成长阶梯-索引的基本操作(2)-索引的收缩和拆分
  • 原文地址:https://www.cnblogs.com/mingforyou/p/14654412.html
Copyright © 2011-2022 走看看