• 解决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>
  • 相关阅读:
    SQL(4)— Date、order by
    步入三十(二)
    【js】特殊字符转义
    【ionic】项目中$ionicModal简单用法
    【ionic】常见问题处理
    【js】视频截图
    实现笔记本拔除电源后修改屏幕缩放比例
    激活 公众号java
    【Golang】基于beego/orm实现相同表结构不同表名的分表方法实现
    .Net Cors 跨域配置域名通配符
  • 原文地址:https://www.cnblogs.com/mingforyou/p/14654412.html
Copyright © 2020-2023  润新知