[英]Building .war file using maven. Missing files and directories
我尝试使用 maven 插件构建 .war 文件:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
我的项目结构如下:
/main/webapp/WEB-INF/
/main/webapp/WEB-INF/spring/...
/main/webapp/WEB-INF/web.xml
/main/webapp/public/...
/main/webapp/resources/...
/main/webapp/views/...
构建后,我的 war 文件只包含 WEB-INF 和 META-INF。 缺少 webapp 目录的所有其他内容(公共、资源和视图)。 此外,.war 文件中的 WEB-INF 目录仅包含 /classes 和 /lib 目录(/WEB-INF/spring 和 WEB-INF/web.xml 是缺失的)。
如何告诉 maven 将所有 webapp 和 WEB-INF 目录内容打包到 war 文件中?
您的maven-war-plugin配置与项目结构不匹配。 使用<warSourceDirectory>WebContent</warSourceDirectory> ,您正在配置maven-war-plugin以在WebContent目录中查找您的 webapp 源。 但是,您的来源位于main/webapp 。
我建议您将所有 webapp 源移动到src/main/webapp中(而不是main/webapp )并将maven-war-plugin配置更新为:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
默认情况下, maven-war-plugin将在src/main/webapp中查找您的 webapp 源。
您可以通过在命令行中使用以下命令来使用 Maven 打包您的项目。
mvn clean package
看一下Maven 布局定义: webapp 文件夹应该在src/main/webapp而不是main/webapp 。 或者,您也可以强制 maven 在不同的目录中查找您的资源。 请参阅https://maven.apache.org/pom.html#Build_Settings
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.