You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Maven使Jenkins构建输出War而非Jar以解决Tomcat部署失败问题

Maven打包生成WAR文件的配置方案及技巧

核心配置修改

Maven的打包类型由项目根目录下的pom.xml中<packaging>标签直接控制,只需做以下修改:

  • 打开项目根目录(或Web模块目录,多模块场景)的pom.xml
  • 添加或修改<packaging>标签为war:
<project>
  ...
  <packaging>war</packaging>
  ...
</project>

常见问题排查与技巧

  1. 多模块项目的正确修改位置
    若为多模块项目,父级pom.xml的打包类型通常是pom,需找到实际的Web业务模块的pom.xml进行修改,不要误改父pom。

  2. Web资源目录规范
    Maven WAR插件默认要求Web资源(如html、css、WEB-INF)放在src/main/webapp目录下,若该目录不存在,Maven可能降级生成JAR包:

    • 快速解决:创建空的src/main/webapp目录
    • 自定义路径:若你的Web资源在其他目录,可通过WAR插件配置指定:
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.3.2</version>
          <configuration>
            <webResources>
              <resource>
                <!-- 替换为你的Web资源实际目录 -->
                <directory>src/main/resources/web-resources</directory>
              </resource>
            </webResources>
          </configuration>
        </plugin>
      </plugins>
    </build>
    
  3. Jenkins构建的模块指定
    多模块项目在Jenkins中构建时,需明确指定Web模块进行打包,避免构建整个项目时只处理父模块:
    执行命令示例:mvn clean package -pl your-web-module-artifactId -am

    • -pl:指定要构建的模块(填写Web模块的artifactId)
    • -am:自动构建该模块依赖的其他模块
  4. 验证配置有效性
    先在本地执行mvn clean package,检查target目录下是否生成.war文件,确认本地生效后再在Jenkins中执行相同命令,避免Jenkins的Maven配置与本地不一致导致的问题。

内容的提问来源于stack exchange,提问作者AMWST313

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:01:27