Tomcat部署项目的方式
① 将web项目整个文件夹,放在%TOMCAT_HOME%/webapps目录中,文件夹名作为ContextPath
② 将web项目打包成war,放在%TOMCAT_HOME%/webapps目录中,war文件名作为ContextPath
③ 在%TOMCAT_HOME%/conf/server.xml的Host标签中添加以下内容 ( ContextPath是path属性值 )
④在%TOMCAT_HOME%/conf/Catalina/localhost中新建一个xml文件, xml文件名作为ContextPath
传统开发中的常见痛点
- jar包的下载、升级、依赖、冲突
- 不同IDE之间的项目共享
- 单元测试
-
传统项目 vs Maven项目
Maven
Apache Maven,主要用于自动化构建和管理Java项目
- 基于项目对象模型 ( POM,Project Object Model ) 的概念
- 下载地址:https://maven.apache.org/download.cgi
- 必须配置好JAVA_HOME, Maven对JDK版本的要求: http://maven.apache.org/docs/history.html
- 添加MAVEN_HOME\bin到PATH中
Maven项目的常见目录
- Maven使用“约定优于配置”的思想 (Convention over Configuration)
- 创建Maven项目时,Maven将创建默认项目结构,开发人员只需要相应地放置文件
pom.xml
- pom.xml是Maven项目的核心配置文件,根元素是project.project的常用子元素如下表所示

groupId、artifactId、version,组成一个Maven坐标(Coordinate)
构建生命周期,描述了构建的过程,Maven内置了3个构建生命周期
- clean
- default
- site(站点)
- 构建生命周期由phase(阶段)组成
- phase可以跟plugin goal(插件目标绑定)
- plugin goal 代表1个特定的任务
- 一旦某个phase被执行,就会执行其绑定的所有goal
- 通过命令mvn 插件:help可以查看插件包含的所有goal
- 比如mvn archetype:help
default生命周期
- default生命周期由下表中的phase组成

使用mvn package 就会按顺序执行validate、compile、test、package阶段
常用命令
mvn archetype : generate
- 创建maven项目
- mvn clean
- 清除target
mvn clean package
compile:默认,编译依赖关系在所有类路径中均可用。此外,这些依赖会传递到相关项目
- provided:仅在编译和测试类路径上可用,并且不可传递。希望jdk或容器在运行时提供它。
- runtime:依赖关系不适编译所必需的,而是运行所必需的。它在运行时和测试类路径中,但不在编译类路径中
- test:依赖关系对于正常使用该应用程序不是必需的,并且仅在测试编译和执行阶段可用,它不是可传递的
- system: 必须显式提供jar的位置 (可以通过systemPath标签指定), 不会去Maven仓库中查找
