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

时间:2017-08-18 14:18:32

标签: java xml spring maven war

我的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上加载。

的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>
...

1 个答案:

答案 0 :(得分:0)

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