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项目

    image.png

    Maven

  • Apache Maven,主要用于自动化构建和管理Java项目

  • 必须配置好JAVA_HOME, Maven对JDK版本的要求: http://maven.apache.org/docs/history.html
  • 添加MAVEN_HOME\bin到PATH中

image.png

Maven项目的常见目录

  • Maven使用“约定优于配置”的思想 (Convention over Configuration)
    • 创建Maven项目时,Maven将创建默认项目结构,开发人员只需要相应地放置文件

image.png

pom.xml

  • pom.xml是Maven项目的核心配置文件,根元素是project.project的常用子元素如下表所示

image.png

  • groupId、artifactId、version,组成一个Maven坐标(Coordinate)

    • 能够确定唯一的一个项目

      构建生命周期(Build Lifecycle)

  • 构建生命周期,描述了构建的过程,Maven内置了3个构建生命周期

    • clean
    • default
    • site(站点)
  • 构建生命周期由phase(阶段)组成
    • phase可以跟plugin goal(插件目标绑定)
    • plugin goal 代表1个特定的任务
    • 一旦某个phase被执行,就会执行其绑定的所有goal
  • 通过命令mvn 插件:help可以查看插件包含的所有goal
    • 比如mvn archetype:help

image.png

default生命周期

  • default生命周期由下表中的phase组成

image.png

  • 使用mvn package 就会按顺序执行validate、compile、test、package阶段

    常用命令

  • mvn archetype : generate

    • 创建maven项目
  • mvn clean
    • 清除target
  • mvn clean package

    • 先执行clean,再执行package

      dependency中scope的取值

  • compile:默认,编译依赖关系在所有类路径中均可用。此外,这些依赖会传递到相关项目

  • provided:仅在编译和测试类路径上可用,并且不可传递。希望jdk或容器在运行时提供它。
  • runtime:依赖关系不适编译所必需的,而是运行所必需的。它在运行时和测试类路径中,但不在编译类路径中
  • test:依赖关系对于正常使用该应用程序不是必需的,并且仅在测试编译和执行阶段可用,它不是可传递的
  • system: 必须显式提供jar的位置 (可以通过systemPath标签指定), 不会去Maven仓库中查找