注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Big-Time的博客

天行健,君子以自强不行。

 
 
 

日志

 
 
关于我

人生像攀登一座山,而找寻出路,却是一种学习的过程,我们应当在这过程中,学习稳定、冷静,学习如何从慌乱中找到生机。

网易考拉推荐

Maven管理多模块项目  

2012-06-27 18:19:39|  分类: Maven |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
首先,我们要明确的多模块项目的含义,它是指一个应用中包含多个module。一般来说,一个应用单独部署成服务,只是打包的时候,maven会把各个module组合在一起。各模块一般单独打成jar放到lib目录中,当然web应用也生成war包。 

这里说的多模块项目要与那种单独自立门户的多个application区分开来,多个application也可能有包级的关联,但是它们各自分开了,不属于多模块项目的范畴。 

maven对多模块项目的管理大概是这样的,它存在一个parent模块,但实际没有程序代码,只包含一个pom.xml,该pom是用来给子模块来引用的。 

目录结构与下面的类似: 
    simple-parent 
    +-simple-weather 
         +-src 
         +-target 
         \-pom.xml 
    +-simple-webapp 
         +-src 
         +-target 
         \-pom.xml 
    \-pom.xml 
在这个目录结构中,一个父模块包含了两个子模块。 
各个pom.xml的内容大致如下: 
pom.xml: 
Xml代码  收藏代码
  1. <modules>  
  2.  <groupId>org.sonatype.mavenbook.multi</groupId>   
  3.  <artifactId>parent</artifactId>   
  4.  <version>0.8-SNAPSHOT</version>   
  5.  <packaging>pom</packaging>   
  6.  <module>simple-weather</module>   
  7.  <module>simple-webapp</module>   
  8. </modules>  
  9. <dependencies>  
  10.  <dependency>  
  11.   <groupId>velocity</groupId>   
  12.   <artifactId>velocity</artifactId>   
  13.   <version>1.5</version>   
  14.  </dependency>  
  15. </dependencies>  

simple-weather/pom.xml: 
Xml代码  收藏代码
  1. <parent>  
  2.   <groupId>org.sonatype.mavenbook.multi</groupId>   
  3.   <artifactId>simple-parent</artifactId>   
  4.   <version>0.8-SNAPSHOT</version>   
  5.   </parent>  
  6.  <dependencies>  
  7.   <dependency>  
  8.    <groupId>junit</groupId>   
  9.    <artifactId>junit</artifactId>   
  10.    <version>3.8.1</version>   
  11.    <scope>test</scope>   
  12.   </dependency>  
  13.  </dependencies>  

simple-webapp/pom.xml: 
Xml代码  收藏代码
  1. <parent>  
  2.  <groupId>org.sonatype.mavenbook.multi</groupId>   
  3.  <artifactId>simple-parent</artifactId>   
  4.  <version>0.8-SNAPSHOT</version>   
  5.  </parent>  
  6. <dependencies>  
  7.  <dependency>  
  8.   <groupId>org.apache.geronimo.specs</groupId>   
  9.   <artifactId>geronimo-servlet_2.4_spec</artifactId>   
  10.   <version>1.1.1</version>   
  11.   </dependency>  
  12.  </dependencies>  

如果按父pom.xml打包,会输出 simple-weather**.jar,simple-webapp**.war两个包; 
如果按simple-weather/pom.xml打包,则只会输出 simple-weather**.jar; 
如果按simple-webapp/pom.xml打包,则只会输出 simple-webapp**.war。 

另外,子模块会继承父模块的包依赖,使用mvn dependency:tree可以查看各个模块的包依赖列表,simple-weather,simple-webapp项目都有引用到 velocity包。 

虽然这是一个application下包含了多个module的结构,但是在eclipse中,还是得对每个子module单独建project来管理源码。具体可以分别在simple-weather、simple-webapp目录下使用mvn eclipse:eclipse来创建eclipse project,创建完毕后,你就可以在文件.classpath中看到,包依赖关系已经按照pom.xml中的配置自动生成了。
  评论这张
 
阅读(1617)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017