我尝试使用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是missig) .
如何告诉maven将所有webapp和WEB-INF目录内容打包到war文件中?
3 回答
maven-war-plugin
的配置与项目结构不匹配 . 使用<warSourceDirectory>WebContent</warSourceDirectory>
,您将配置maven-war-plugin
以在WebContent
目录中查找您的webapp源 . 但是,您的来源位于main/webapp
.我建议你将所有的webapp源都移到
src/main/webapp
(而不是main/webapp
)中,并将maven-war-plugin
配置更新为:默认情况下,
maven-war-plugin
将在src/main/webapp
中查找您的webapp源 .您可以使用命令行中的以下命令使用Maven打包项目 .
看一下Maven layout definition:webapp文件夹应该在
scr/main/webapp
而不是main/webapp
. 或者,您也可以强制maven查看资源的不同目录 . 见https://maven.apache.org/pom.html#Build_Settings