maven的多模块管理与重用

echojessicaa 2016-08-13 01:28:05
以下是我的理解和疑惑,欢迎大拿指正

多模块的应用,是为了封装单一作用的code到一起,方便修改和再重用。

而maven多模块的方式,我在网上搜到是以这种方式实现的:
(1)创建空的没有code的父module A,最终作用是用来绑定各module到一起的
(2)实际service app module B 依赖于api module C:
B.pom:
<dependency>..C...</dependency>
(3)B和C的pom都要加这个:
<parent>
<artifactId>A</artifactId>
<groupId>A</groupId>
<version>1.0-SNAPSHOT</version>
</parent>

第(3)点让我非常不能理解:这不是把所有的module都绑定死了吗?C只能被A所规定的关系组所使用,无法被其他module重用。
那dependency还有什么作用呢?完全是bundle啊!

是我的module打开方式不对吗,求解
...全文
264 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggaofeng 2016-08-13
  • 打赏
  • 举报
回复
一个普通的maven工程,一般生成一个jar包。 如果开发一个CS结构的程序,一般至少需要3个jar包(client.jar,server.jar,common.jar) 如果开发web程序,一般也分为多个模块,即多个jar,比如仓库管理模块,登录模块,订单管理模块,支付模块等。 这就需要建立多个maven工程。但是,你会发现有好多jar包,多个工程都需要依赖。比如jdom,比如junit等待。这些依赖关系要在每个pom.xml中重复拷贝。 于是,给这些工程建立一个父工程,这些通用依赖写在父工程的pom.xml中,子工程会自动继承父工程的pom。(每个子工程即模块就不用再写这些公共依赖了) 这组jar包的groupId是相同的,比如是ABC公司,artifactId是不同的,有的叫client,有的叫server,有的叫common
Maven权威指南 Authors Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu () Abstract Maven权威指南是一本关于Apache Maven的书。 Copyright 1. Creative Commons BY-ND-NC Foreword: Beta 0.16 Preface 1. How to Use this Book 2. Your Feedback 3. Font Conventions 4. Maven Writing Conventions 5. Acknowledgements 1. 介绍 Apache Maven 1.1. Maven... 它是什么? 1.2. 约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性重用 1.5. 一个“项目”的概念模型 1.6. Maven是Ant的另一种选择么? 1.7. 比较Maven和Ant 1.8. 总结 2. 安装和运行Maven 2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven 2.3.1. 在Mac OSX上安装Maven 2.3.2. 在Microsoft Windows上安装Maven 2.3.3. 在Linux上安装Maven 2.3.4. 在FreeBSD或OpenBSD上安装Maven 2.4. 验证Maven安装 2.5. Maven安装细节 2.5.1. 用户相关配置和仓库 2.5.2. 升级Maven 2.6. 获得Maven帮助 2.7. 使用Maven Help插件 2.7.1. 描述一个Maven插件 2.8. 关于Apache软件许可证 I. Maven实战 3. 一个简单的Maven项目 3.1. 简介 3.1.1. 下载本章的例子 3.2. 创建一个简单的项目 3.3. 构建一个简单的项目 3.4. 简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories) 3.5.5. Maven依赖管理 (Dependency Management) 3.5.6. 站点生成和报告 (Site Generation and Reporting) 3.6. 小结 4. 定制一个Maven项目 4.1. 介绍 4.1.1. 下载本章样例 4.2. 定义Simple Weather项目 4.2.1. Yahoo! Weather RSS 4.3. 创建Simple Weather项目 4.4. 定制项目信息 4.5. 添加新的依赖 4.6. Simple Weather源码 4.7. 添加资源 4.8. 运行Simple Weather项目 4.8.1. Maven Exec 插件 4.8.2. 浏览你的项目依赖 4.9. 编写单元测试 4.10. 添加测试范围依赖 4.11. 添加单元测试资源 4.12. 执行单元测试 4.12.1. 忽略测试失败

50,538

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧