文章目录
  1. 1. Maven
    1. 1.1. Maven 简介
    2. 1.2. IDEA使用Maven遇到的坑
      1. 1.2.1. tomcat插件
      2. 1.2.2. 使用maven打war包后放入tomcat运行

Maven

Maven 简介

​ Maven 是一个项目管理工具,它包含了一个项目对象模 型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管 理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标 (goal)的逻辑!

IDEA使用Maven遇到的坑

tomcat插件

​ tomcat:run

​ 如果没有在src/main下找到webapp,则就直接启动,因此就算删除webapp目录还是可以启动tomcat 如果找到了webapp目录,就将当前项目发布(并不会在target中生成war包)

使用maven打war包后放入tomcat运行

​ 打包时的项目根路径有两种方式:

1)默认从src/main/webapp作为项目根目录

2)在pom文件中指定

1
2
3
4
5
6
7
8
9
10
11
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 指定web.xml的路径-->
<webXml>web\WEB-INF\web.xml</webXml>
<!-- 指定jsp、js、css的路径 -->
<warSourceDirectory>web</warSourceDirectory>
</configuration>
</plugin>

​ 注意:打war包可以,但是指定的项目目录不被maven的tomcat插件识别,无法发布比较坑

3)将war包放到到tomcat的webapps目录进行发布

​ 注意:

​ 路径问题:

​ 引入:

​ 例如:IDEA发布时使用Application context为/,

​ 即使用http://localhost:8080就可以访问项目

​ 但是,在重定向时路径/表示服务器根路径,

​ 则路径写法:/项目名/需要跳转的路径

​ 如果写死,项目在需要使用项目名或者不需要使用项目名访问时,访问就会出现问题

​ 或者是jsp文件中路径

​ 解决:

​ 项目中最好使用req.getContextPath() + “/login”来得到工程名+路径

​ 这样在发布时有没有项目名都可以正常运行

​ jsp文件可以使用基路径来控制:先得到路径,再使用basePath标签

文章目录
  1. 1. Maven
    1. 1.1. Maven 简介
    2. 1.2. IDEA使用Maven遇到的坑
      1. 1.2.1. tomcat插件
      2. 1.2.2. 使用maven打war包后放入tomcat运行