扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
maven中如何使用聚合模块,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司网络公司拥有十多年的成都网站开发建设经验,超过千家客户的共同信赖。提供成都做网站、网站建设、网站开发、网站定制、卖友情链接、建网站、网站搭建、成都响应式网站建设、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
聚合模块为项目目录的最顶层,其他模块作为聚合模块子目录而存在。目的是为一次构建多个项目模块。
我自己化了一个关于项目的关系:
maven-aggregate作为maven pom项目,需要定义pom.xml的 packaging 为 pom类型
我们还是参照 maven的依赖特性,冲突解决(五) 创建 maven-01 maven-02 maven-03工程,通过maven-aggregate pom工程 对这三个maven项目做一个聚合,配置如下:
Xml代码
1.3. 4.0.0 5.com.sohu.train 6.maven-aggregate 7.0.0.1-SNAPSHOT 8.pom 10. 11.12. 17.../maven-01 13.../maven-02 14...maven-03 15.
对 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的子模块,分了很多子模块:
pom继承是为了抽出重复配置,通常配置在父模块中,为子模块提供使用,这样可以做到“一处声明,处处使用”。
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. 16. 17.../maven-01 13.../maven-02 14.../maven-03 15.18. 21. 22.3.8.1 19.23. 32.24. 31.25. 30.junit 26.junit 27.${junit.version} 28.test 29.
maven-01,maven-02,maven-03 需要配置parent ,dependencies,同时对junit做一个依赖,3个工程的pom配置如下:
Xml代码
1.3. 4.0.0 4. 5.6. 11.com.sohu.train 7.maven-aggregate 8.0.0.1-SNAPSHOT 9.../maven-aggregate/pom.xml 10.maven-03 12.jar 13. 14.15. 20.16. 19.junit 17.junit 18.
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流