在eclipse tomcat上发布过滤的web.xml

时间:2017-05-17 19:00:37

标签: java eclipse maven tomcat maven-profiles

我使用Eclipse开发的Maven Web应用程序,在我的pom.xml文件中我已经定义了2个不同的配置文件:生产和开发,具有不同的属性。当我执行clean install来创建我的WAR包时,感谢我filteringDeploymentDescriptors中的maven-war-plugin我设法有一个已解析的web.xml,所有属性都被正确替换。

问题在于,当我将webapp发布到我正在使用的内置Eclipse tomcat时,web.xml根本没有解析,我拥有所有原始属性名称。< / p>

我已在我的开发资料中将activeByDefault设置为true,并且我还设置了Active Maven配置文件(属性&gt;&gt; Maven),但我仍然无法获得它起作用。

1 个答案:

答案 0 :(得分:0)

我想到了这个解决方案:

我们的想法是更改Eclipse的应用程序的Web根路径:

  1. 在Eclipse中关闭您的项目。
  2. 在外部编辑器中打开<project>/.settings/org.eclipse.wst.common.component文件。
  3. defaultRootSource设置为:

  4. 在外部编辑器中打开<project>/pom.xml文件。

  5. <build>标记内添加:

    <resources>
        <resource>
            <directory>src/main/webapp</directory>
            <filtering>false</filtering>
            <targetPath>../../target/m2e-wtp/web-resources</targetPath>
            <excludes>
                <exclude>WEB-INF</exclude>
            </excludes>
        </resource>
    </resources>
    
  6. 在Eclipse中打开您的项目并尝试它。

  7. 使用此方案,您可以获得Eclipse自动构建项目,并在每次构建时调用Maven进行资源过滤。然后,Maven进行双重过滤:

    • web.xml(filteringDeploymentDescriptors=true)。
    • 其余的src/main/webapp个文件(<resources>标记)。 ...结果将输出到target/m2e-wtp/web-resources目录,现在是Eclipse希望找到网络资源的地方。

    WARN :只有一个缺点:您不能从src/main/webapp执行JSP,因为它不再是Web容器目录。相反,您应该打开浏览器并输入要打开的URL。

    我在启用“自动构建”的情况下尝试了它,它起作用了:我执行了一个从web.xml读取init参数的JSP,我还执行了clean package并产生了正确的战争。< / p>