当我需要对属性文件进行资源过滤时,如何在Eclipse中运行Maven webapp?

时间:2012-04-22 07:29:53

标签: eclipse debugging tomcat maven m2e

我需要对这个问题进行一些更新,我发现this thread back in 2009 here,但答案是使用maven 2,我不确定Q4E是否与maven 3一起使用。我需要在mvn包阶段过滤一些属性文件,以使生成的war正常运行,资源过滤在CLI mvn install中正常工作。但是,当我执行“在服务器上运行服务器/调试”时,过滤功能不再起作用。 上述线程作者最终使用q4e,声称q4e获得​​了资源过滤权限。我和m2e一起安装了q4e,但仍然无法正常工作,所以我不知道q4e是否与maven 3不兼容,或者我做错了什么。 谢谢,

大卫

2 个答案:

答案 0 :(得分:1)

更新到最新的m2e-wtp插件0.15(自0.12以来资源过滤错误修复),现在工作正常。

答案 1 :(得分:0)

我不确定这是否与您的问题相符,但我想在构建期间使用pom中的属性填充我的web.xml文件,并在pom中放置一个groovy脚本来执行此操作。它起了作用,也可能对你有用。它绝对适用于eclipse和命令行。这是我的pom片段:

  <plugin>
<!-- Groovy script to set the description and version in the web.xml display name -->
    <groupId>org.codehaus.groovy.maven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.0</version>
    <executions>
      <execution>
        <id>groovy-magic</id>
        <phase>prepare-package</phase>
        <goals>
          <goal>execute</goal>
        </goals>
        <configuration>
          <source>
            def file = new File("src/main/webapp/WEB-INF/web.xml");
            def fileText = file.text;
            def match = "&lt;display-name>[^&lt;]*&lt;/display-name>";
            def replace = "&lt;display-name>"+project.description+" "+project.version+"&lt;/display-name>";
            fileText = fileText.replaceAll(match, replace);
            file.write(fileText);
            println "Updated web.xml"
          </source>
        </configuration>
      </execution>
    </executions>
  </plugin>