一、整合之前
整合之前,我们都是使用本地的 Tomcat 服务器进行开发测试,最最头疼的一个问题就是每次做项目都要手动导入 jar
包,随着功能越来越多导入的 jar
包也越来越多,导致我们的项目变得很大,运维很头疼。
maven 正是解决这一问题的,当然还有 gradle,不过现在 javaweb
项目一般都是 maven
管理,所以我们也用 maven。
二、整合步骤
这里以 IDEA
演示如何使用 maven
创建一个 javaweb
项目:
# 大前提
大前提是你的 IDEA 已经配置好 maven 了,下面这张图是配置好的界面,如果你还没有配置,点击这里:https://blog.csdn.net/weixin_43941364/article/details/104667393 。
1、new project
新建一个项目, 输入 webapp 可以快速定位:
然后展开它,选择第一个正式版本:
这里解释一下这是在干嘛,这就是让 maven 给我们生成一个 模板,这样创建完项目之后就会自动生成 web 目录,而且会配置好 facts
。
下面点击确定,然后输入项目相关信息即可。
之后 maven 会去加载文件,等一会之后就好了,生成完成之后项目结构是这样的:
这只是模板,我们可以根据自己的需求随意更改,比如这里我们 JDK 的版本改为和我的项目内容一致:
下面是最关键的一步,为了整合 Tomcat,我们必须在 maven
当中配置,告诉 maven
我们需要 tomcat,这样他才会给你生成。
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
我们在build
标签中加入 plugins
标签,里面配置上面的内容。
port
:端口号,和 tomcat 同理path
:项目的绝对路径,如果设置成test
访问的时候要加上/test
,不写默认为根路径。
然后打开右侧的 maven
窗口,你会发现 tomcat
插件已经装好了。
如果你没有,我建议你将 maven 设置为如下配置:
然后我们来看一下 pom 文件中的标签都是什么意思。
<build>
<finalName>maven-demo</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
这里的<pluginManagement>
标签里面的内容是重写的 maven
父类配置文件中配置,也就是说就算你不写也有,但是我们写了可以指定为较新的版本。它的作用就是提供一些基本的打包以及部署命令。
相信下面这张图大家看到很多次了:
这里简单说一下每个步骤的作用。
首先我们要明确每个 maven
项目都有一个 target
目录,该目录存放maven
运行之后生成的文件,比如该项目的目录已经被maven
自动指定好了。
那么这样配置之后,maven
启动之后就会在该文件夹下生成相应的文件。
- clean——清理:删除
target
目录及内容; - compiler——编译:将
java
文件编译成class
文件放入target
目录; - deploy——部署:将项目部署到远程仓库,需要事先在
pom
文件中配置,我没用过; - package——打包:将项目打包放入
target
目录; - install——安装:将项目打包后并发布到本地仓库;
其中package
命令默认会把项目打成jar
包,但是我们可以配置为 war
包。
比如这里我们加入了一个war
的插件,这样就可以直接执行该会插件,然后项目会自动被打包放入 target
目录下。
好了,到现在为止我们才新建了项目,还没有解释 Tomcat 在哪。
2、Tomcat
我们使用 maven
工具启动 Tomcat:
双击 run
即可运行项目,他会自动执行我们之前介绍的 compiler
package
等命令。
运行结果如图,简直不要太方便,按照我们传统的当时还有配置本地的 Tomcat 等信息:
现在只需要在 pom
文件里面配置就好了。
那么你是否好奇,这个 tomcat 哪来的?
我们之前说了,这个不是本地的 Tomcat,是它再带的,是插件本身,那我们来验证一下。
我们打开target
目录来看一下:
我们发现它确实自动生成了一个 tomcat 文件夹,而且里面的目录结构即为 tomcat
目录结构。
现在可以确定了,这个 tomcat 其实是 maven
插件自带的。
三、整合之后
整合之后如果我们想发布项目到服务器该怎么办?
简单只需两步:
1、双击执行 war
命令:
2、打开 target
找到war
文件,然后复制到服务器的Tomcat
的webapp
目录下:
如果服务器在运行都不用重启可以直接访问。