Maven 整合Tomcat 容器

时间:2022-07-22
本文章向大家介绍Maven 整合Tomcat 容器,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、整合之前

整合之前,我们都是使用本地的 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文件,然后复制到服务器的Tomcatwebapp目录下:

如果服务器在运行都不用重启可以直接访问。