我尝试使用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文件中?
答案 0 :(得分:2)
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
内查找您的网络应用来源。
答案 1 :(得分:0)
您可以使用命令行中的以下命令使用Maven打包项目。
mvn clean package
答案 2 :(得分:0)
查看Maven layout definition:webapp文件夹应位于scr/main/webapp
而不是main/webapp
。
或者,您也可以强制maven查看资源的不同目录。见https://maven.apache.org/pom.html#Build_Settings