我不明白为什么当我将webResources
条目放在maven-war-plugin
中时,资源会放在war根目录中。我认为它应该只放在WEB-INF/classes
中。
这是我的maven-war-plugin
配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<!-- <configuration> <webXml>target/web.xml</webXml> </configuration> -->
<configuration>
<webResources>
<resource>
<excludes>
<exclude>dbre.xml</exclude>
</excludes>
<directory>src/main/resources</directory>
</resource>
</webResources>
<archive>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
如果删除<webResources>
条目,则只将默认src/main/resources
文件复制到WEB-INF/classes
,但不在根目录目录中。
答案 0 :(得分:4)
这是预期的行为。引用maven-war-plugin
文档:
WAR插件还能够通过webResources参数包含默认资源目录中找不到的资源。
...
external-resource2.jpg
和image2
被复制到WAR的根目录,保留了目录结构。
后来:
默认情况下,Web资源被复制到WAR的根目录
如果要覆盖默认目标路径,可以指定<targetPath>
属性。例如,如果您希望Web资源位于WEB-INF
内,您可以像这样配置插件:
<webResources>
<resource>
<excludes>
<exclude>dbre.xml</exclude>
</excludes>
<directory>src/main/resources</directory>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>