基于maven的javaweb项目模块化开发
转自:https://my.oschina.net/kingfire/blog/273381
基于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包;
相信有更好的方案,欢迎赐教。
详细配置
基于maven的javaweb项目模块化开发的更多相关文章
- 基于maven构建javaweb项目思路梳理及改进
需要准备的东西: Jdk. myeclipse. maven包 预装jdk环境 1.maven安装及配置: a) 详见url https://www.cnblogs.com/eagle668 ...
- 基于maven的JavaWeb项目构建部署
需要准备的安装文件: 1 JDk http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html jdk-8 ...
- jenkins集成基于maven的javaweb项目,部署到docker容器中
使用开源工具:Jenkins,码云gitee,docker,docker页面管理工具PortainerUI,github 各种工具的安装就不必介绍了,首先打开Jenkins,刚安装完Jenkins,可 ...
- 工具idea 基于maven 创建springMVC项目
SpringMVC Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单.这些控制器一般不 ...
- SVN基于Maven的Web项目更新,本地过程详细解释
周围环境 MyEclipse:10.7 Maven:3.1.1 概要 最近在做项目,MyEclipse下载SVN基于上述Maven的Web问题,有时候搞了非常半天,Maven项目还是出现叉号,最后总结 ...
- IntelliJ IDEA 17和Maven构建javaWeb项目
前言 电脑又断电了,眼看着写好的东西就没有了,这是第二次犯这个错误了.很难受呀!还是回到正题吧,我们来使用IDEA和Maven构建一个JavaWeb项目 软件环境: IDEA:2017.2.1 JDK ...
- maven学习(八)——使用maven创建javaweb项目
构建JavaWeb项目 1.创建JavaWeb项目 1.使用mvn archetype:generate命令,如下所示: mvn archetype:generate -DgroupId=com.my ...
- 使用Maven构建javaWeb项目时,启动tomcat出错:严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.conte
在初学使用maven构建javaWeb的项目的时候,启动tomcat加载时,总是提示如下错误,辛苦一番终于找到解决办法. 严重: Error configuring application liste ...
- 转换基于Maven的Java项目支持Eclipse IDE
在过去的教程中,使用 Maven 创建了一个Java项目,但是这个项目不能导入到Eclipse IDE中,因为它不是 Eclipse 风格的项目. 这里有一个指南,向您演示如何转换 Maven 生成 ...
随机推荐
- 【canvas学习笔记五】使用图片
在canvas里画图有两个步骤: 获得图片源. drawImage()画图. 图片源 canvas支持以下几种图片资源: HTMLImageElement 可以使用Image()方法构造的图片,也可以 ...
- 技术干货:Python解析CSV
1. 什么是CSV CSV(Commma-Separated Value)是都好分隔符,其文件以纯文本形式存储表格数据(数字和文本). 案例: 2. 为什么要使用CSV 与专有的二进制文件格式截然不同 ...
- pyCharm报错"your evaluation license has expired, pycharm will now exit"解决方法(实测)
一.修改C:\Windows\System32\drivers\etc 目录下的hosts文件 1.打开hosts文件,路径是 c:\windows\system32\drivers\etc\host ...
- git回滚操作
一,找到之前的版本历史纪录,确定要回滚到那个版本号:git log 二,回滚到这个版本:git reset --hard 72229f823c8b21cbe52142a944d74f1883fa41a ...
- Ajax监测开始执行及结束执行
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- iOS AES-CBC、AES-ECB 加解密
简介 AES是加密的算法,使用128.192 和 256 位密钥,将被加密数据划分为128位(16字节)一块,然后使用某种加密模式进行加密 关键词: 块大小:16字节 密钥长度:AES算法下,key的 ...
- maven的配置及使用
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Apache官网下载maven 解压缩,配置环境变量: path路径:E:\apache-ma ...
- C语言指令数组名和数组名取地址
以下C语言指令:int a[5] = {1, 3, 5, 7, 9}; int *p = (int *)(&a + 1); printf("%d, %d", *(a + 1 ...
- Java ——重写、多态、抽象类
本节重点思维导图 重写 子类覆盖父类同名的方法 final关键字:不可变的 public static final PAGE_SIZE = 18; final修饰的类不能做为父类被子类继承. 多态 多 ...
- Cocos2d-X网络编程(1) 网络基本概念
网络模型 OSI层模型.TCP/IP的层模型如下所示. TCP/IP各层对应的协议如下所示. 通过初步的了解,我知道: IP协议:对应于网络层,是网络层的协议, TCP协议:对应于传输层,是传输层的协 ...