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>
  • 相关阅读:
    Storm分布式实时流计算框架相关技术总结
    上手开源项目的几点建议【转】
    笔试面试的路上——努力ing
    Storm配置项详解【转】
    storm UI
    leetcode-单词探索
    leetcode-全排列详解(回溯算法)
    leetcode-生成括号(回溯算法)
    leetcode-递增的三元子序列
    leetcode-最长无重复字符的子串
  • 原文地址:https://www.cnblogs.com/mingforyou/p/14654412.html
Copyright © 2011-2022 走看看