我使用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),但我仍然无法获得它起作用。
答案 0 :(得分:0)
我想到了这个解决方案:
我们的想法是更改Eclipse的应用程序的Web根路径:
<project>/.settings/org.eclipse.wst.common.component
文件。将defaultRootSource
设置为:
在外部编辑器中打开<project>/pom.xml
文件。
在<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>
在Eclipse中打开您的项目并尝试它。
使用此方案,您可以获得Eclipse自动构建项目,并在每次构建时调用Maven进行资源过滤。然后,Maven进行双重过滤:
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>