基于maven的javaweb项目模块化开发
引言
考虑团队拥有多个类似项目的情况,比如一些功能差异不大的cms系统,这些系统有相同的基础代码。
如果每个项目拷贝整套代码,进行独立管理,那么维护代价很大,如果要修改一个基础代码,需要修改所有项目的相同地方的代码。
所以要找一个把项目模块化的方法,以便于维护。
目标
- 最重要的是实现基础代码复用,包括java代码,以及webapp中的jsp,css,js等代码;
- 多个开发者可以方便获取和修改基础代码,最好有集中式的模块远程仓库;
- 能够在脱离模块远程仓库的情况下,实现本地多模块编译集成,这样万一出差在外也能工作;
- 能够方便的合并多个模块,最好一两条命令能实现;
- 修改代码后能够快速的在服务器(比如tomcat)上运行,方便调试;
方案简述
为了实现上诉目标,经过两天的调研和实践,提出了如下方案:
- 采用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包;
相信有更好的方案,欢迎赐教。
详细配置
未完待续...
来源:oschina
链接:https://my.oschina.net/u/134739/blog/273381