请选择 进入手机版 | 继续访问电脑版

maven多个子项目、父项目之间的引用问题

[复制链接]
黄琦 发表于 2020-12-31 20:19:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Maven多模块项目管理小结


###原文:https://blog.csdn.net/whuslei/article/details/7989102
问题
下面是一个大抵的项目结构图
Parent
------ childA(BusinessLayer)— pom.xml
------ childB(WebLayer)— pom.xml
`------ pom.xml
1、Parent怎么能找到childA和childB呢?
在maven中,parent模块组织好childA和childB,叫做"聚合",多个模块团结编译。实现起来很简朴,只需要在parent的pom文件里到场以下内容。
  1.    childA   childB
复制代码
2、是不是这样写就完全ok了?
这样只是告诉maven编译器,在读取parent的pom文件时去找到childA和childB,但照旧会分别去编译他们引入的依赖。这样就会导致pom文件引入的包重复!!于是我们引入了"继续"的概念,也就是形成"父子"关系,子pom可以引用到父pom中引入的依赖。详细做法如下:
在parent中,写入以下内容,其中"*"标识的行可以组成一个路径,通过这个路径可以在maven堆栈中找到这个pom文件!本例中,path为M2_Path/com/sang/main/Parent-Moduel/1.0.2/xxxx-1.0.2.pom。所以这三个标签是必须的!!!
  1. 4.0.0  com.sang.main              Parent-Moduel       1.0.2            pom  Simple-main
复制代码
父pom写好了,子pom就通过标签继续父pom的依赖,如下:
  1.    com.sang.main   Parent-Moduel   1.0.2   ../pom.xml  
复制代码
值得注意的是标签,如果pom的条理关系就像本例中的那样只隔一层,则可以省略这个。maven同样可以找到子pom。
子pom中引入标签后,就会从父pom继续等属性了,比方childA只需要再到场如下内容即可!
  1. 4.0.0  com.sang.business     ChildA-modulejar         childA
复制代码
3、如何添加依赖?
maven可以让我们方便地管理jar包依赖,详细做法如下:
  1.                  javax.servlet        servlet-api        2.5   
复制代码
如果不通过继续,则需要在每个pom中到场这样的依赖,这样子pom对应的模块可以引用到这个jar包。上面提到的重复引用jar包,可以通过下面的方式办理:
主pom中把依赖通过引起来,体现子pom可能会用到的jar包依赖
  1.                     javax.servlet          servlet-api          2.5         
复制代码
子pom如果需要引用该jar包,则直接引用即可!不需要到场,便于统一管理。别的也可以到场仅在子pom中用到的jar包,比如:
  1.            javax.servlet        servlet-api                org.codehaus.jackson       jackson-core-lgpl       1.9.4      
复制代码
4、除了jar包依赖,插件也可以通过这样的方式举行管理
  1.                                   org.apache.maven.plugins               maven-source-plugin               2.1.1                                          org.apache.maven.plugins           maven-source-plugin         
复制代码
5、如果子pom间存在引用关系,比如childA引用到了childB的jar包,该怎么做?
  1.    com.module   childA          1.0.0
复制代码
小结
本文只是从多模块组织的角度说明白maven的根本用法, 固然,其他的复杂用法照旧要参考maven手册

来源:https://blog.csdn.net/ampsycho/article/details/85987622
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )