Package a Maven-transformed web.xml in the final war
我想让 Maven 处理
我正在使用
现在我需要指示 Maven 在打包应用程序时获取转换后的文件(而不是
但我被困在这里,我不知道如何走得更远。
附带说明,我将
整个插件配置如下。
请随意建议其他文件夹结构、配置更改,或者即使这不是正确的方法等等 - 这是一个测试设置,我正在使用它来学习 Maven。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <profile> <id>release-production</id> true</activeByDefault></activation> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> xml-maven-plugin</artifactId> <version>1.0</version> <executions> <execution> <goals> <goal>transform</goal> </goals> <phase>process-resources</phase> </execution> </executions> <configuration> <transformationSets> <transformationSet> <dir>src/main/webapp/WEB-INF</dir> <includes> <include>web.xml</include> </includes> <stylesheet>src/main/resources-xml/webxml-transform.xsl</stylesheet> </transformationSet> </transformationSets> </configuration> </plugin> </plugins> </build> </profile> |
我已经看到了问题的答案:How to transform web.xml during packaging with maven?,但是我需要将整个 XML 元素添加到
这比我想象的要容易(尽管我想这可以通过更简单的配置来完成)。
当然,我愿意接受建议。
第一步:为xml转换器配置自定义输出目录
xml-maven-plugin 在其
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <plugin> <groupId>org.codehaus.mojo</groupId> xml-maven-plugin</artifactId> <version>1.0</version> <executions> <execution> <goals> <goal>transform</goal> </goals> <phase>process-resources</phase> </execution> </executions> <configuration> <transformationSets> <transformationSet> <dir>src/main/webapp/WEB-INF</dir> <includes> <include>web.xml</include> </includes> <stylesheet>src/main/resources-xml/webxml-transform.xsl</stylesheet> <outputDir>target/generated-resources</outputDir> </transformationSet> </transformationSets> </configuration> </plugin> |
第二步:配置war插件读取另一个web.xml文件
告诉 maven-war-plugin 新的(转换后的)
将
1 2 3 4 5 6 7 | <plugin> maven-war-plugin</artifactId> <configuration> <webXml>target/generated-resources/web.xml</webXml> </configuration> </plugin> |