Maven跳过原型创建Java war项目缺少WEB-INF文件夹及web.xml问题咨询
你当前遇到的问题是两个配置疏漏导致的:
- 跳过archetype创建的Maven项目不会自动生成
src/main/webapp目录,这是Maven默认的web资源根目录,WEB-INF需要放在该目录下 - 你仅在
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
相关产品推荐
相关产品推荐

