基于maven的javaweb项目模块化开发
引言
考虑团队拥有多个相似项目的状况,好比一些功能差别不大的cms系统,这些系统有相同的基础代码。css
若是每一个项目拷贝整套代码,进行独立管理,那么维护代价很大,若是要修改一个基础代码,须要修改全部项目的相同地方的代码。html
因此要找一个把项目模块化的方法,以便于维护。java
目标
- 最重要的是实现基础代码复用,包括java代码,以及webapp中的jsp,css,js等代码;
- 多个开发者能够方便获取和修改基础代码,最好有集中式的模块远程仓库;
- 可以在脱离模块远程仓库的状况下,实现本地多模块编译集成,这样万一出差在外也能工做;
- 可以方便的合并多个模块,最好一两条命令能实现;
- 修改代码后可以快速的在服务器(好比tomcat)上运行,方便调试;
方案简述
为了实现上诉目标,通过两天的调研和实践,提出了以下方案:web
- 采用maven多模块技术;
- 基础的java代码做为一个模块ma.jar,采用jar打包;
- 基础的webapp文件及关联紧密的java代码,做为模块mb.war,采用war打包;
- 采用nexus服务器集中管理模块,好比ma.jar和mb.war;
- 实际的项目在pom.xml文件中声明依赖ma.jar和mb.war;
- mb.war是war文件,采用maven的overlays技术实现合并,主要策略是后来的war包文件不能覆盖已有的war包文件;
- 在eclipse-kepler下开发,配置项目的Deployment Assembly,指定target/项目名称 = / ,而后项目发布到eclipse的tomcat。 即项目运行mvn package之后,tomcat将运行结果war包;
相信有更好的方案,欢迎赐教。apache
详细配置
未完待续...tomcat