2017-05-17 51 views
0

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

问题是,当我发布我的webapp到我正在使用的内置的Eclipse Tomcat中,那样web.xml根本就没有被解析,并且我拥有所有的原始属性名称。

我已经设置activeByDefault真我的发展概况和我还设置活动的Maven配置文件(属性>> Maven的),但我仍然无法得到它的工作。

回答

0

我觉得这个解决方案:

的想法是改变你的应用程序的Web根目录路径为Eclipse:

  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中打开你的项目并进行试用。

通过这个方案,你可以让Eclipse保持你的项目自动生成,并且在每一次构建时它都会调用Maven来完成资源过滤。然后,Maven进行双重过滤:

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

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

我试着用“自动构建”打开,它的工作原理:我执行了一个JSP,它从web.xml读取初始参数,我也执行了clean package,它产生了一场正确的战争。

相关问题