eclipse mar2+maven 3.39+tomcat8 构建maven结构的web项目 实现热部署
带图片完整word版本: http://download.youkuaiyun.com/detail/mfc2003/9465383
目录结构:
1. Maven安装配置
Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”。本书将介绍Maven这一跨平台的项目管理工具。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手。1
Maven是优秀的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。
Maven能帮助我们标准化构建过程。在Maven之前,十个项目可能有十种构建方式;有了Maven之后,所有项目的构建命令都是简单一致的,这极大地避免了不必要的学习成本,而且有利于促进项目团队的标准化。
Maven不仅是构建工具,还是一个依赖管理工具和项目信息管理工具。它提供了中央仓库,能帮我们自动下载构件。几乎任何Java应用都会借用一些第三方的开源类库,这些类库都可通过依赖的方式引入到项目中来。随着依赖的增多,版本不一致、版本冲突、依赖臃肿等问题都会接踵而来。手工解决这些问题是十分枯燥的,幸运的是Maven提供了一个优秀的解决方案,它通过一个坐标系统准确地定位每一个构件(artifact),也就是通过一组坐标Maven能够找到任何一个Java
类库(如jar文件)。Maven为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源类库。
1.1 Maven 是做什么用的?
Maven是一个项目管理和构建自动化工具。但是对于我们程序员来说,我们最关心的是它的项目构建功能。
最简单的时候场景是,在pom.xml里设置对第三方jar包的依赖,而不用所有用到的jar包都复制到工程lib目录,再配置javapath。再者说在自己引入的jar包会出现很多重复的包,导致版本冲突,而maven会自动管理依赖!
所以这里我们介绍的就是怎样用 maven 来满足我们项目的日常需要。
Maven 使用惯例优于配置的原则 。
它所有的项目都有如下的结构:
目录 |
目的 |
${basedir} |
存放 pom.xml和所有的子目录 |
${basedir}/src/main/java |
项目的 java源代码 |
${basedir}/src/main/resources |
项目的资源,比如说 数据源配置文件,spring配置文件 |
${basedir}/src/test/java |
项目的测试类,比如说 JUnit代码 |
${basedir}/src/test/resources |
测试使用的资源 |
一个 maven 项目在默认情况下会产生 JAR 文件,另外,编译后 的 classes 会放在${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。
1.2 下载
下载 zip版本的,
解压放到d盘根目录改名为 maven
1.3 配置环境变量
设置环境变量MAVEN_HOME为 d:\maven,设置path 为 %MAVEN_HOME%\bin
mvn -v 查看 maven版本,如果能显示说明已经配置好了
1.4 第一个测试项目
1.4.1 创建项目
cd d:
mkdir temp
cd temp
#开始创建一个新项目(guroupId大项目名 artifactId子项目名 package生成的类的包名
mvn archetype:generate -DgroupId=com.hjs-DartifactId=test1 -Dpackage=com.hjs.controller -Dversion=1.0.1
#archetype是Maven插件的名称
#generate指定目标
Maven自带了很多模板,这里默认的是754 直接回车就是
然后选择版本默认6 直接回车
最后一个是让你确认项目信息 y 回车
然后maven会自动下载好多需要的文件,接着就会创建完毕
在d:\temp下会多一个文件夹 test1
里面有src目录和 pom.xml文件
Src的文件结构是固定的,类似这个结构
在 src/main/java下面会自动生成一个类文件 com.hjs.controller.App.java
App.java是maven自动生成的,前面的包名是我们mvn命令指定的
1.4.2 Maven 打包
Shell:>mvnpackage
Maven会生成一个target文件夹
1.4.3 测试运行
打包成功后会在target文