Maven构建Web应用及版本管理

Maven构建Web应用及版本管理

Web项目的目录结构

基于Java的web项目,其标准的打包方式是WAR。一个WAR包下至少包含两个子目录:WEB-INF和META-INF。META-INF包含了一些打包元数据信息,WEB-INF下必须包含一个Web资源表述文件web.xml,它的子目录classes包含所有该Web项目的类,而另一个子目录lib则包含该Web项目的依赖Jar包,classes和lib目录都会在运行的时候被加入到Classpath中。

Maven对Web项目的布局结构也有一个通用的约定,必须为Web项目显式指定打包方式为war(非显式地指定packaging,Maven会使用默认的jar打包方式)。

Maven声明的Web项目较一般Java项目来说多了一个Web资源目录,其默认位置是src/main/webapp/。该目录必须包含一个子目录WEB-INF,该子目录还必须包含web.xml文件,该目录其它文件和目录包括html、jsp、css、JavaScript等,它们与WAR包中的Web资源完全一致。

Maven项目测试建议

可以用单元测试覆盖的代码,就不应该依赖与Web页面测试,Web页面测试应该仅限于页面的层次,例如JSP、CSS、JavaScript的修改。

版本管理

理想的发布版本应当对应了项目某个时刻比较稳定的状态,这包括源代码的状态以及构建的状态,因此这个时候项目的构建应该满足以下条件:

  1. 所有自动化测试应当全部通过
  2. 项目没有配置任何快照版本的依赖
  3. 项目没有配置任何快照版本的插件
  4. 项目所包含的代码已经全部提交到版本控制系统中

Maven的版本号定义约定是这样的:<主版本>.<次版本>.<增量版本>-<里程碑版本>

  1. 主版本:表示了项目的重大架构变更
  2. 此版本:表示较大范围的功能增加和变化,及Bug修复
  3. 增量版本:一般表示种大米Bug的修复
  4. 里程碑版本:往往 指某一个版本的里程碑

主干(trunk)、标签(tag)和分支(branch),对于这几个知识的深入这里并不打算如此,具体的操作也有对应的工具(如git)。

  1. 主干:项目开发代码的主体,是从项目开始直到当前都处于活动的状态。从这里可以获得项目最新的源代码
    以及几乎所有的变更历史
  2. 分支:从主干的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大Bug的修复,
    或者做一些实质性的开发。如果分支达到了预期的目的,通常发生在这里的变更会被合并到(merge)到主干
  3. 标签:用来表示主干或者分支的某个点的状态,以代表项目的某个稳定状态,这通常就是版本发布时的状态

猜你喜欢

转载自blog.csdn.net/qq_22314145/article/details/81199304