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 复制路径字符串!
我的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 复制路径字符串!