Maven 构建从 WEB-INF 文件夹中排除了一些 .xml 文件

Maven build excludes some .xml files from WEB-INF folder

我的WEB-INF文件夹包含4个文件和1个目录:

drwxr-xr-x  238B Aug 18 16:53 .
drwxr-xr-x  136B Aug 14 13:23 ..
-rw-r--r--  302B Aug 14 13:23 applicationContext.xml
-rw-r--r--  302B Aug 14 13:23 dispatcher-servlet.xml
-rw-r--r--  1.1K Aug 18 16:53 spring-mvc-demo-servlet.xml
drwxr-xr-x  102B Aug 18 16:52 view
-rw-r--r--  2.2K Aug 18 16:53 web.xml

Maven 配置为构建 war 包。这是pom.xml的一部分:

    ...
    <packaging>war</packaging>

    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webXml>webapp\WEB-INF\web.xml</webXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...

但是当我打包上传到Tomcat的代码时:

mvn clean compile war:exploded

文件夹中只剩下web.xml个文件:

$ pwd
spring-learning/target/1.0-SNAPSHOT/WEB-INF

$ ls -alh
total 8
drwxr-xr-x 170B Aug 18 17:08 .
drwxr-xr-x 136B Aug 18 17:08 ..
drwxr-xr-x 170B Aug 18 17:08 classes
drwxr-xr-x 340B Aug 18 17:08 lib
-rw-r--r-- 2.2K Aug 18 16:53 web.xml

我从一门 udemy 课程中学习了 web.xml,它包含对这些额外的 .xml 文件的引用,这些文件当然无法在 Tomcat.[=16 上加载=]

web.xml:

...
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc-demo-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
...

经过 10 多个小时的绝望谷歌搜索后,我终于注意到 pom.xml 文件中的 Windows 型反斜杠。请注意从 Internet 复制路径字符串!