用maven打包时
servlet这种应用服务器的jar包需要用maven容器来管理,不能在libraies中简单加上tomcat。
需要用provided 这种scope来在编译级别加载
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
--------------
eclipse 配置maven web项目
http://zk1878.iteye.com/blog/1222330
--------------
maven 下载jar包方便,特别是有关联关系的jar包 还有就是看源代码
例如给你一个不带jar的struts web项目,如果用通常的方式需要手动下载大量的jar包
但是如果用maven 就方便很多,在nexus查下struts,servlet,jstl,standard 把这些依赖放到pom.xml中就ok了。
不方便的是maven的web项目的目录结构区别于一般的。eclipse认不出来,无法用eclipse自带的导出war包功能,默认情况下,没有办法在eclipse中通过tomcat服务器插件来运行,如果想要用的话需要比较复杂的转换。
一个妥协的方法就是多建一个maven项目用来管理jar包, 当然这个要看具体项目的情况了
---------------------
maven优点
一,jar包的管理
1, 多项目的jar包可以复用
2, 清除冗余jar包, 用依赖的方式自动添加,只要有顶级jar包就行
3, 不用去web上下载jar包, 只要给个坐标
二, 构建项目
1, 不用Ant的delete, mkdir, javac, jar 等命令
只需要遵循maven的约定, 源代码目录, 编译/输出目录, 打包方式
2, 能发布到特定的地方,供其他项目使用
maven其他功能
一, 聚合 继承功能
鸡肋
将一个项目拆分成多个小项目,不方便调试,增加复杂度
二, 插件
鸡肋
唯一有用的就是输出源代码, 没有ant方便
三, nexus
仓库组,宿主, 代理, 虚拟 的区别
TODO 视频
四, 测试模块
鸡肋
太复杂, 降低开发代码的效率
五, Hudson 持续集成
持续编译/DB集成/测试/审查/部署/反馈
六, web目录结构
多一个web资源目录 src/main/webapp
版本管理
【主版本】 【次版本】 【增量版本】 【里程碑版本】
1.3.4-beta-2
主干 分支 标签
主干 trunk 主体
分支 branch 重大bug的修复,实验性的开发, 最后需要被merge到主干中
标签 tag 标识某个点的稳定状态, 版本发布的状态
平台切换
需要在开发环境 测试环境 生成环境中做切换
addressDoctor.properties.fut
addressDoctor.properties.itg
addressDoctor.properties.pro
用mvn clean package -Pitg 命令来选择需要哪个环境的配置文件