我在 Windows 7 平台上运行 Eclipse Juno 和 Tomcat 7。
当我使用 Maven 构建我的项目时,web.xml 是正确派生的。我进入 eclipse 并刷新并检查我的 target\web.xml,到目前为止一切顺利。我运行 Tomcat 服务器,一切正常。
只要我重新启动 Eclipse,web.xml 就会回到占位符版本,我必须再次从 Maven 构建并在运行 Tomcat 之前刷新源代码。
我在 Ubuntu 上进行了完全相同的设置,但没有发生这种情况。
在 Project Facets 下,我使用的是 Dynamic Web Module 3.0。
=======
<artifactId>nordicedge</artifactId>
<packaging>war</packaging>
<name>${project.artifactId}</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>kivadmin2_logic</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>kivUpdater</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.directwebremoting</groupId>
<artifactId>dwr</artifactId>
<version>3.0.M1</version>
</dependency>
<dependency>
<groupId>rome</groupId>
<artifactId>rome</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>se.nordicedge</groupId>
<artifactId>neim</artifactId>
<version>4.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>se.nordicedge</groupId>
<artifactId>neutil</artifactId>
<version>4.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webXml>${project.build.directory}/web.xml</webXml>
<warSourceExcludes>**/DSEditor.properties,**/META-INF/context.xml</warSourceExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
</plugin>
</plugins>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<includes>
<include>web.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>${project.build.directory}</targetPath>
</resource>
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF/NEIDMgmt</directory>
<includes>
<include>DSEditor.properties</include>
</includes>
<filtering>true</filtering>
<targetPath>${project.build.directory}/nordicedge/WEB-INF/NEIDMgmt</targetPath>
</resource>
<resource>
<directory>${basedir}/src/main/webapp/META-INF</directory>
<includes>
<include>context.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>${project.build.directory}/nordicedge/META-INF</targetPath>
</resource>
</resources>
</build>
最佳答案
如果您使用的是 m2e-wtp,首先请检查您使用的是最新版本,即 0.17。之后,资源过滤使用 Maven War plugin为了在标准构建阶段过滤它们:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp</directory>
<includes>
<include>**/*.xhtml</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<targetPath>WEB-INF/classes</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
关于每次启动环境时,Eclipse 都会覆盖我的 web.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657538/