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

Maven跳过原型创建Java war项目缺少WEB-INF文件夹及web.xml问题咨询

你当前遇到的问题是两个配置疏漏导致的:

  1. 跳过archetype创建的Maven项目不会自动生成src/main/webapp目录,这是Maven默认的web资源根目录,WEB-INF需要放在该目录下
  2. 你仅在pluginManagement节点中声明了maven-war-plugin的版本,没有在build -> plugins节点中激活该插件的实际打包逻辑

步骤1:创建所需目录结构

在项目的src/main路径下手动创建如下层级目录:

src
└── main
    └── webapp
        └── WEB-INF
            └── web.xml

你可以根据需求填写web.xml的内容,基础的Servlet 4.0版本示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 后续可添加Servlet、过滤器等配置 -->
</web-app>

如果不需要自定义web.xml,也可以跳过手动创建步骤,后续通过插件配置自动生成。

步骤2:调整pom.xml配置

将maven-war-plugin从pluginManagement节点移出,添加到build -> plugins节点下,按需添加配置:

<build>
    <finalName>tjsp1</finalName>
    <!-- 新增plugins节点,激活war插件逻辑 -->
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
            <configuration>
                <!-- 如果不需要手动写web.xml,开启这个配置后插件会自动生成 -->
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <!-- 如果你的web.xml放在自定义路径,可以通过该参数指定,默认路径可以不配置 -->
                <!-- <webXml>src/main/webapp/WEB-INF/web.xml</webXml> -->
            </configuration>
        </plugin>
    </plugins>

    <pluginManagement>
        <!-- 原有其他插件的版本声明保留即可,去掉里面的maven-war-plugin配置 -->
        <plugins>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
            <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-install-plugin</artifactId>
                <version>2.5.2</version>
            </plugin>
            <plugin>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

步骤3:执行打包生成目标文件

在项目根目录执行命令:
mvn clean package
执行完成后,在项目的target目录下会生成tjsp1.war包,解压后即可看到根目录下的WEB-INF文件夹及内部的web.xml文件。如果需要直接发布到Tomcat的webapps目录,将生成的war包放入webapps目录即可,Tomcat启动时会自动解压生成对应的目录结构。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:18:04