maven项目部署到Tomcat

本文详细介绍如何安装配置Tomcat及Tomcat Manager,并通过Maven将项目部署至Tomcat的过程。包括环境变量设置、Tomcat Manager用户配置、Maven插件配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安装Tomcat,地址:http://tomcat.apache.org,我安装的版本为9.0.0.M22,安装的目录为C:\apache-tomcat,设置环境变量CATALINA_HOME为C:\apache-tomcat,同时添加%CATALINA_HOME%\bin到Path环境变量中

2.在默认情况下,Tomcat Manager是处于禁用状态的。准确地说,Tomcat Manager需要以用户角色进行登录并授权才能使用相应的功能,不过Tomcat并没有配置任何默认的用户,因此需要我们进行相应的用户配置之后才能使用Tomcat Manager。

Tomcat Manager的用户配置是在Tomcat安装目录/conf/tomcat-users.xml文件中进行管理的。打开conf/tomcat-users.xml,添加manager-gui,manager-script角色

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="root" password="123456" roles="manager-gui"/>
<user username="admin" password="123456" roles="manager-script"/>
</tomcat-users

以下是Tomcat Manager 4种角色的大致介绍(下面URL中的*为通配符):

manager-gui
允许访问html接口(即URL路径为/manager/html/*)
manager-script
允许访问纯文本接口(即URL路径为/manager/text/*)
manager-jmx
允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
manager-status
允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)

此时启动Tomcat,在浏览器中输入地址http://localhost:8080/manager/html,在弹出的对话框里输入manager-gui对应的用户名和密码 (root/123456),看到以下画面,就说明Tomcat Manger配置成功了

3.在maven项目中的pom文件中添加tomcat插件,如下:

  <plugins>
      <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <url>http://localhost:8080/manager/text</url>
                <username>admin</username>
                <password>123456</password>
                <update>true</update>
                <path>/hello</path>
            </configuration>
       </plugin>
  </plugins>

其中username和password为manager-script角色对应的用户名和密码(admin/123456)

 完整的pom文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jack</groupId>
  <artifactId>hello</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>hello Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
         <version>3.0.1</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>hello</finalName>
      <plugins>
         <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <url>http://localhost:8080/manager/text</url>
                <username>admin</username>
                <password>123456</password>
                <update>true</update>
            </configuration>
          </plugin>
      </plugins>
  </build>
</project>

 然后执行命令:mvn tomcat7:redeploy,就可以将项目部署到Tomcat安装目录/webapps下,如图:

在浏览器中输入http://localhost:8080/hello,就可以看到输出结果了

如需要部署到远程服务器,则需要在远程服务器的conf/Catalina/localhost目录下创建一个manager.xml文件,写入如下值:

<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/manager">
             <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

 

转载于:https://www.cnblogs.com/rainboy2010/p/7141692.html

<think>我们正在回答用户的问题:如何将Maven项目部署Tomcat服务器? 根据引用内容,我们可以总结出几种部署方法,并参考引用中的配置信息。 部署Maven项目Tomcat服务器主要有以下几种方式: 1. 使用Tomcat Maven插件(推荐) 2. 手动将WAR包复制到Tomcat的webapps目录 3. 通过Tomcat Manager应用进行部署(支持远程部署,常用于CI/CD,如Jenkins) 下面详细说明每种方法: ### 方法1:使用Tomcat Maven插件(tomcat7-maven-plugin) 步骤: 1. 在pom.xml中配置Tomcat插件 对于Tomcat7及以上版本,可以使用tomcat7-maven-plugin(也支持Tomcat8和9)。 配置示例(引用[1]和[4]中的部分配置): ```xml <build> <plugins> <!-- 配置Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 控制台输出的管理路径,默认为/manager --> <url>http://localhost:8080/manager/text</url> <server>tomcat8</server> <!-- 这里对应Maven的settings.xml中配置的server id --> <path>/springmvc</path> <!-- 项目访问路径 --> </configuration> </plugin> </plugins> </build> ``` 2. 在Maven的settings.xml中配置Tomcat用户凭证 在`<servers>`标签内添加: ```xml <server> <id>tomcat8</id> <!-- 与pom.xml中配置的server一致 --> <username>admin</username> <password>admin</password> </server> ``` 3. 配置Tomcat用户权限(conf/tomcat-users.xml) 在Tomcat的`conf/tomcat-users.xml`文件中添加用户和角色(引用[3]): ```xml <tomcat-users> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user username="admin" password="admin" roles="manager-gui, manager-script, admin-gui, admin-script"/> </tomcat-users> ``` 注意:Tomcat8以后,manager-gui和manager-script需要分开配置,且为了安全,Tomcat默认只允许本地IP访问manager。如果需要远程部署,需修改`webapps/manager/META-INF/context.xml`,将`Valve`的allow属性设置为允许的IP(如`127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1`)或注释掉。 4. 执行Maven命令部署 - 运行以下命令将项目部署Tomcat: ```bash mvn tomcat7:deploy # 首次部署 mvn tomcat7:redeploy # 重新部署 ``` 注意:确保Tomcat服务器已经启动。 ### 方法2:手动复制WAR包 步骤: 1. 使用Maven打包项目: ```bash mvn clean package ``` 打包后会在target目录下生成WAR文件(如`myproject.war`)。 2. 将WAR文件复制到Tomcat的`webapps`目录下。 3. 启动Tomcat(如果已经启动,Tomcat会自动解压WAR包并部署应用)。 4. 访问应用:`http://localhost:8080/myproject`(其中myproject是WAR文件名,不包含扩展名)。 ### 方法3:通过Tomcat Manager进行部署(常用于Jenkins等自动化部署) 步骤: 1. 同样需要配置Tomcat用户和角色(同方法1中的步骤3)。 2. 在Jenkins或其他CI工具中,可以使用以下方式: - 使用Maven的`deploy`命令(需要配置Tomcat插件,如cargo或tomcat-maven-plugin)。 - 使用Jenkins的“Deploy to container”插件,在构建后步骤中选择“Deploy war/ear to a container”,并配置: - WAR文件路径:`target/*.war` - Container:选择Tomcat版本 - 管理凭据:填写Tomcat Manager的用户名和密码 - Tomcat URL:`http://localhost:8080` 3. 也可以使用curl命令手动部署(引用[3]中的配置): ```bash curl -X PUT --data-binary @target/myproject.war "http://admin:admin@localhost:8080/manager/text/deploy?path=/myapp&update=true" ``` ### 注意事项: - **项目打包类型**:确保pom.xml中设置`<packaging>war</packaging>`。 - **上下文路径**:在方法1中,通过`<path>`配置;在方法2中,WAR文件名决定上下文路径(除非在server.xml中配置Context);在方法3中,可以在部署时指定路径。 - **Tomcat版本**:插件版本与Tomcat版本对应,如tomcat7-maven-plugin支持Tomcat7及以上。 以上三种方法可根据实际需求选择。对于开发环境,方法1(插件)最方便;对于生产环境,方法2(手动复制)或方法3(自动化部署)更常见。 --- ### §§相关问题§§ 1. 如何配置Tomcat用户以允许远程部署? 2. Maven项目打包成WAR时如何排除某些文件? 3. 如何配置多个不同的部署环境(如开发、测试、生产)?</think>### 如何将Maven项目部署Tomcat服务器 以下是三种主流部署方式,根据引用内容整合的详细步骤: #### 方法1:使用Tomcat Maven插件(推荐) 1. **添加插件配置** 在`pom.xml`中配置Tomcat插件: ```xml <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <!-- 兼容Tomcat8/9 --> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>tomcat-server</server> <!-- Maven配置的server id --> <path>/your-app</path> <!-- 应用访问路径 --> </configuration> </plugin> </plugins> </build> ``` 2. **配置Tomcat用户权限** 修改Tomcat的`conf/tomcat-users.xml`: ```xml <tomcat-users> <role rolename="manager-script"/> <!-- 必须包含此角色 --> <user username="admin" password="admin" roles="manager-gui,manager-script,admin-gui"/> </tomcat-users> ```[^3] 3. **配置Maven凭据** 在`~/.m2/settings.xml`中添加: ```xml <servers> <server> <id>tomcat-server</id> <!-- 与pom.xml中的server对应 --> <username>admin</username> <password>admin</password> </server> </servers> ``` 4. **执行部署命令** ```bash mvn tomcat7:deploy # 首次部署 mvn tomcat7:redeploy # 更新部署 ``` #### 方法2:手动部署WAR文件 1. **生成WAR包** ```bash mvn clean package ``` 生成的WAR文件在`target/`目录 2. **部署Tomcat** - 将WAR文件复制到Tomcat的`webapps/`目录 - 重启Tomcat服务 #### 方法3:通过Tomcat Manager界面部署 1. **访问管理界面** `http://localhost:8080/manager/html` 2. **上传WAR文件** 在"WAR file to deploy"区域选择本地WAR文件上传 3. **验证部署** 应用会出现在"Applications"列表,状态应为**Running** --- ### 常见问题解决 1. **403 Access Denied** - 检查`tomcat-users.xml`角色配置必须包含`manager-script`[^3] - 检查IP限制:修改`webapps/manager/META-INF/context.xml`中的`Valve`配置 2. **部署后404错误** - 确认`pom.xml`中`<packaging>war</packaging>` - 检查应用路径是否匹配:`<path>`配置 vs 访问URL 3. **依赖下载失败** 在`settings.xml`添加阿里云镜像加速: ```xml <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/repository/central</url> </mirror> ```[^4] > **最佳实践**: > - 生产环境推荐使用**方法1**(自动化部署) > - 开发调试推荐**方法3**(快速可视化) > - 插件版本选择:Tomcat7/8用`tomcat7-maven-plugin`,Tomcat10+用`tomcat10-maven-plugin` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值