maven中如何使用聚合模块

maven中如何使用聚合模块,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

创新互联公司网络公司拥有十多年的成都网站开发建设经验,超过千家客户的共同信赖。提供成都做网站、网站建设、网站开发、网站定制、卖友情链接、建网站、网站搭建、成都响应式网站建设、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务

1.什么是maven的聚合模块?

聚合模块为项目目录的最顶层,其他模块作为聚合模块子目录而存在。目的是为一次构建多个项目模块。

1.1 项目结构

 maven中如何使用聚合模块

我自己化了一个关于项目的关系:

maven中如何使用聚合模块

1.2 pom标签配置-module

    maven-aggregate作为maven pom项目,需要定义pom.xml的 packaging 为 pom类型

    我们还是参照 maven的依赖特性,冲突解决(五) 创建 maven-01 maven-02  maven-03工程,通过maven-aggregate pom工程 对这三个maven项目做一个聚合,配置如下:

  maven中如何使用聚合模块

Xml代码 

1.    
3.    4.0.0  

5.    com.sohu.train  
6.    maven-aggregate  
7.    0.0.1-SNAPSHOT  
8.    pom  

10.      
11.      
12.      ../maven-01  
13.      ../maven-02  
14.      ..maven-03  
15.       

17.    

   对 maven-aggregate执行下mvn clean compile

Xml代码 

1.  \[INFO\] Scanning for projects...  
2.  \[WARNING\]   
3.  \[WARNING\] Some problems were encountered while building the effective model for com.sohu.train:maven-02:jar:1.0-SNAPSHORT  
4.  \[WARNING\] 'dependencies.dependency.exclusions.exclusion.groupId' for junit:junit:jar is missing. @ line 38, column 16  
5.  \[WARNING\] 'dependencies.dependency.exclusions.exclusion.artifactId' for junit:junit:jar is missing. @ line 38, column 16  
6.  \[WARNING\]   
7.  \[WARNING\] It is highly recommended to fix these problems because they threaten the stability of your build.  
8.  \[WARNING\]   
9.  \[WARNING\] For this reason, future Maven versions might no longer support building such malformed projects.  
10.  \[WARNING\]   
11.  \[INFO\] ------------------------------------------------------------------------  
12.  \[INFO\] Reactor Build Order:   //构建 maven 的反应堆,执行清理 编译的顺序  
13.  \[INFO\]   
14.  \[INFO\] maven-02  
15.  \[INFO\] maven-01  
16.  \[INFO\] maven-03  
17.  \[INFO\] maven-aggregate  
18.  \[INFO\]                                                                           
19.  \[INFO\] ------------------------------------------------------------------------  
20.  \[INFO\] Building maven-02 1.0-SNAPSHORT  
21.  \[INFO\] ------------------------------------------------------------------------  
22.  \[INFO\]   
23.  \[INFO\] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-02 ---  
24.  \[INFO\] Deleting E:\\train\\test\\maven-02\\target  
25.  \[INFO\]   
26.  \[INFO\] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-02 ---  
27.  \[INFO\] Using 'UTF-8' encoding to copy filtered resources.  
28.  \[INFO\] skip non existing resourceDirectory E:\\train\\test\\maven-02\\src\\main\\resources  
29.  \[INFO\]   
30.  \[INFO\] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven-02 ---  
31.  \[INFO\] Changes detected - recompiling the module!  
32.  \[INFO\] Compiling 1 source file to E:\\train\\test\\maven-02\\target\\classes  
33.  \[INFO\]                                                                           
34.  \[INFO\] ------------------------------------------------------------------------  
35.  \[INFO\] Building maven-01 1.0-SNAPSHOT  
36.  \[INFO\] ------------------------------------------------------------------------  
37.  \[INFO\]   
38.  \[INFO\] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-01 ---  
39.  \[INFO\] Deleting E:\\train\\test\\maven-01\\target  
40.  \[INFO\]   
41.  \[INFO\] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-01 ---  
42.  \[INFO\] Using 'UTF-8' encoding to copy filtered resources.  
43.  \[INFO\] Copying 1 resource  
44.  \[INFO\]   
45.  \[INFO\] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven-01 ---  
46.  \[INFO\] Changes detected - recompiling the module!  
47.  \[INFO\] Compiling 1 source file to E:\\train\\test\\maven-01\\target\\classes  
48.  \[INFO\]                                                                           
49.  \[INFO\] ------------------------------------------------------------------------  
50.  \[INFO\] Building maven-03 0.0.1-SNAPSHOT  
51.  \[INFO\] ------------------------------------------------------------------------  
52.  \[INFO\]   
53.  \[INFO\] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-03 ---  
54.  \[INFO\] Deleting E:\\train\\test\\maven-03\\target  
55.  \[INFO\]   
56.  \[INFO\] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-03 ---  
57.  \[INFO\] Using 'UTF-8' encoding to copy filtered resources.  
58.  \[INFO\] skip non existing resourceDirectory E:\\train\\test\\maven-03\\src\\main\\resources  
59.  \[INFO\]   
60.  \[INFO\] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven-03 ---  
61.  \[INFO\] Changes detected - recompiling the module!  
62.  \[INFO\] Compiling 1 source file to E:\\train\\test\\maven-03\\target\\classes  
63.  \[INFO\]                                                                           
64.  \[INFO\] ------------------------------------------------------------------------  
65.  \[INFO\] Building maven-aggregate 0.0.1-SNAPSHOT  
66.  \[INFO\] ------------------------------------------------------------------------  
67.  \[INFO\]   
68.  \[INFO\] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-aggregate ---  
69.  \[INFO\] ------------------------------------------------------------------------  
70.  \[INFO\] Reactor Summary:     // 可以看到 对3个maven项目 一起执行编译  
71.  \[INFO\]   
72.  \[INFO\] maven-02 ........................................... SUCCESS \[  1.874 s\]  
73.  \[INFO\] maven-01 ........................................... SUCCESS \[  0.108 s\]  
74.  \[INFO\] maven-03 ........................................... SUCCESS \[  0.158 s\]  
75.  \[INFO\] maven-aggregate .................................... SUCCESS \[  0.002 s\]  
76.  \[INFO\] ------------------------------------------------------------------------  
77.  \[INFO\] BUILD SUCCESS  
78.  \[INFO\] ------------------------------------------------------------------------  
79.  \[INFO\] Total time: 2.263 s  
80.  \[INFO\] Finished at: 2016-01-15T14:35:41+08:00  
81.  \[INFO\] Final Memory: 14M/227M  
82.  \[INFO\] ------------------------------------------------------------------------  

 这样我们就完成 maven对子模块的聚合 ,像我们平常用的dubbo jetty tomcat spring hibernate等等 都是按模块 去开发,一次编译 各个模块都能紧密联系在一起了。我们在平常开发项目也需要适当的去分模块开发,

这是dubbo的子模块,分了很多子模块:

 maven中如何使用聚合模块

2.什么是pom继承?

pom继承是为了抽出重复配置,通常配置在父模块中,为子模块提供使用,这样可以做到“一处声明,处处使用”。

2.1 继承结构

maven中如何使用聚合模块

2.2 pom标签配置-parent,*Management

 1.常用的pom被继承的元素

Xml代码 

1.  groupId :项目组 ID ,项目坐标的核心元素;    
2.  version :项目版本,项目坐标的核心元素;    
3.  description :项目的描述信息;    
4.  properties :自定义的 Maven 属性;    
5.  dependencies :项目的依赖配置;    
6.  dependencyManagement :醒目的依赖管理配置;    
7.  repositories :项目的仓库配置;    
8.  build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;    

 1.配置maven-aggregate pom文件:

Xml代码 

1.    
3.    4.0.0  

5.    com.sohu.train  
6.    maven-aggregate  
7.    0.0.1-SNAPSHOT  
8.    pom  

10.      
11.      
12.      ../maven-01  
13.      ../maven-02  
14.      ../maven-03  
15.       
16.      
17.      
18.      3.8.1  
19.      

21.      
22.      
23.        
24.            
25.              junit  
26.              junit  
27.              ${junit.version}  
28.              test  
29.            
30.           
31.      
32.    

 maven-01,maven-02,maven-03 需要配置parent ,dependencies,同时对junit做一个依赖,3个工程的pom配置如下:

Xml代码 

1.    
3.      4.0.0  
4.        
5.        
6.          com.sohu.train  
7.          maven-aggregate  
8.          0.0.1-SNAPSHOT  
9.          ../maven-aggregate/pom.xml  
10.        
11.      maven-03  
12.      jar  
13.            
14.        
15.            
16.              junit  
17.              junit  
18.            
19.        
20.    

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


新闻标题:maven中如何使用聚合模块
标题来源:http://scyanting.com/article/jcodei.html