maven构建企业级多模块项目(最好的划分模块方式)
来源:互联网 发布:青年网络公开课 张捷 编辑:程序博客网 时间:2024/06/04 21:53
我们在开发项目中,经常使用到多模块,根据不同功能划分模块,这样做能更方便的管理和解耦,那么,如何划分模块呢?
首先看两个很不错的帖子,参考下他们的做法:
A : http://juvenshun.iteye.com/blog/305865
该君的结构是这样的:
---- app-parent
|-- pom.xml (pom)
|
|-- app-util
| |-- pom.xml (jar)
|
|-- app-dao
| |-- pom.xml (jar)
|
|-- app-service
| |-- pom.xml (jar)
|
|-- app-web
|-- pom.xml (war)
具体的依赖传递就是, app-> web -> app-service -> app-dao -> app-util, 首先说下这种方式确实不错,app-util 是工具类,可以做为顶级依赖,或打成jar包,公司可以普遍引用, 其他的模块也很清晰,但是美中不足的是,app-dao用不到util的东西,所以依赖util 无意义。
再来看看另个一个方案:
http://www.cnblogs.com/quanyongan/archive/2013/05/28/3103243.html
上图就是该项目的依赖关系,但是存在的问题就是,没有好好利用依赖传递,其实 core-> util和model, web直接依赖core 就行了;还存在的问题就是,没用使用
dependencyManager, 在父pom 使用这个管理jar 包版本,
如在pom.xml :
<properties> <commons-lang.version>2.4</commons-lang.version></properties><dependencyManagement> <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>${commons-lang.version}</version> </dependency> </dependencies></dependencyManagement>
在子模块使用就直接依赖,不用写版本号了:
<dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </dependency></dependencies>
这这里要注意,dependencyManager 只是声明,并没有实际引入,子模块需要重新引入。
个人觉得,两个还存在的问题就是,dao、service 、model 属于技术上依赖的东西,可以统一放在一个模块里,比如一起放到app-common 里面
最后就是,如果是web项目,就直接
webapp -> app-common -> app-util
如果集成 api的项目,就直接
api -> app-common -> util
如果集成批处理, 就是:
batch -> app-common -util
这样就简化了技术上的分块,而专注于业务上的划分。
总之这是我觉得更好的方式,欢迎大家讨论。
- maven构建企业级多模块项目(最好的划分模块方式)
- maven构建多模块项目的两种方式
- Maven构建简单的多模块项目
- maven构建多模块的web项目
- Maven构建简单的多模块项目
- Maven构建简单的多模块项目
- Maven构建简单的多模块项目
- 多模块Maven项目的快速构建
- Maven搭建多模块企业级项目
- Maven搭建多模块企业级项目
- 搭建多模块企业级Maven项目
- Maven学习 搭建多模块企业级项目
- Maven搭建多模块企业级项目
- Maven学习 搭建多模块企业级项目
- maven搭建多模块企业级项目
- Maven 搭建多模块企业级项目
- maven搭建企业级多模块项目
- MAVEN搭建多模块企业级项目
- nyoj 题目220 推桌子 贪心算法
- 安装es2.4.0
- HDU1286 找新朋友(欧拉函数)
- 反爬虫绕过初级——添加http header和gzip解压处理
- [Leetcode]_38 Count and Say
- maven构建企业级多模块项目(最好的划分模块方式)
- 【自考】数据库系统原理(第一遍)
- 线程部分知识
- 2017年中国高校大数据挑战赛___初试
- H
- DriverManager.deregisterDriver方法
- I/O多路转接之epoll
- 小玩批量作业调度算法
- C语言——实例023 打印菱形