首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Maven 實戰:tomcat7-maven-plugin 內嵌運行與熱部署完整配置

     編輯:Java 綜合教學

開發調試階段,頻繁重啟外部 Tomcat 極其低效。tomcat7-maven-plugin 讓你在項目內內嵌 Tomcat,一條命令啟動、熱部署、甚至遠程發布到運行中的 Tomcat,極大提升開發體驗。

核心功能

  1. 內嵌運行:無需安裝 Tomcat,mvn tomcat7:run 即啟動,默認 localhost:8080/項目名。
  2. 熱部署:修改代碼/JSP 即時生效(配合 IDE 熱編譯)。
  3. 遠程發布:tomcat7:deploy/redeploy 直接推送到遠程/本地運行中的 Tomcat Manager。

完整 pom.xml 配置

<build>
  <plugins>
    <!-- 編碼與編譯版本 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.1</version>
      <configuration>
        <source>1.8</source><target>1.8</target><encoding>UTF-8</encoding>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-resources-plugin</artifactId>
      <version>2.6</version>
      <configuration><encoding>UTF-8</encoding></configuration>
    </plugin>
    <!-- 核心:tomcat7-maven-plugin -->
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <!-- 遠程部署配置(可選) -->
        <url>https://localhost:8080/manager/text</url>
        <username>root</username>
        <password>root</password>
        <!-- 內嵌運行配置 -->
        <port>8080</port>
        <path>/Demo</path>
        <uriEncoding>UTF-8</uriEncoding>
      </configuration>
    </plugin>
  </plugins>
</build>
<dependencies>
  <!-- JSP 編譯依賴(provided 避免打包進 war) -->
  <dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jsp-api</artifactId>
    <version>7.0.47</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

Tomcat 遠程部署前置配置

1. conf/tomcat-users.xml 添加管理角色

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="root" password="root" roles="manager-gui,manager-script"/>

2. 確保 manager 應用啟用(webapps/manager 存在)

常用命令速查

命令作用
mvn tomcat7:run內嵌啟動,阻塞控制台
mvn tomcat7:run -Dmaven.tomcat.port=9090指定端口啟動
mvn tomcat7:deploy首次部署到遠程 Tomcat
mvn tomcat7:redeploy熱更新遠程已部署應用
mvn tomcat7:undeploy卸載遠程應用
mvn tomcat7:run-war直接運行打包後的 WAR(驗證產物)

進階技巧

  • 多環境切換:用 profiles 區分 dev/test/prod 的 url/user/password/path。
  • JPDA 遠程調試:mvnDebug tomcat7:run 默認 8000 端口,IDE 連接即斷點調試。
  • SSL/HTTPS:配置 keystoreFile、keystorePass、httpsPort。
  • JSP 預編譯:<compileJsp>true</compileJsp> 打包時預編譯 JSP,提升首訪速度。

避坑提醒

  1. 插件版本 2.2 只支持 Servlet 3.0 / JSP 2.2,Spring Boot 2.x+ 請改用 tomcat9-maven-plugin 或直接用 spring-boot-maven-plugin。
  2. 遠程部署 403/401 檢查 tomcat-users.xml 權限、Manager 應用是否啟用、IP 白名單(context.xml 的 Valve)。
  3. 內嵌運行時修改 Java 類需 IDE 開啟「Make Project Automatically」+ Compiler -> Build project automatically 才能熱加載。

善用 tomcat7-maven-plugin,讓「改代碼 → 看效果」縮短到秒級,專注業務邏輯而非環境折騰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved