每次启动环境时,Eclipse 都会覆盖我的 web.xml

标签 eclipse maven tomcat

我在 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/

相关文章:

spring - 使用 RestTemplate 时 "wait"中的许多线程

java - Tomcat 无法找到请求的资源,尽管它存在

java - 更改 wsimport 绑定(bind)文件以指向本地资源

eclipse - 替换产品 ico 文件时 Tycho 出错

linux - 在 Fedora 9、KDE ​​4.2 上运行 eclipse 时遇到问题(在 Gnome 中运行良好)

java - 通过 Eclipse 更新 tomcat 服务器上的文件

java - 扫描多个maven pom以获取不同的依赖版本

java - Maven 依赖项 :go-offline command issue

java - 如何使用 github、eclipse、maven 为多个开发人员设置动态 Web 应用程序?

java - Eclipse Web Service Explorer 不显示对象列表作为响应