Отредактировано, чтобы уточнить, что я прошу решение для Eclipse WTP с Tomcat.
С тех пор я заставил это работать для артефактов WAR, просто используя переменную ${project.version}
в web.xml в сочетании с фильтрацией maven-war-plugin следующим образом.
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp</directory>
<includes>
<include>**/web.xml</include>
</includes>
</resource>
</webResources>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
</edit>
Я хотел бы использовать значение ${project.version}
в web.xml в Tomcat с запуском Eclipse WTP следующим образом.
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/api/${version}/*</url-pattern>
</servlet-mapping>
Я пробовал фильтровать следующим образом, но это не работает, я все равно получаю 404. Я знаю, что механизм фильтрации обычно применяется для доступа к переменным Maven в исходном коде, а не в web.xml, но я думаю, что это может сработать и в моем случае...
Выдержка из POM
<build>
<filters>
<filter>${basedir}/src/main/filters/${filter.name}.properties</filter>
</filters>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<filtering>true</filtering>
<includes>
<include>WEB-INF/web.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
...
<properties>
<filter.name>version</filter.name>
</properties>
/src/main/filters/version.properties
version=${project.version}
выдержка из файла web.xml
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/api/v${version}/*</url-pattern>
</servlet-mapping>
Я знаю, что этот механизм предназначен для получения свойств в исходном коде Java (например, https://stackoverflow.com/a/15356374/731040, https://developer.jboss.org/wiki/HowToConfigureJavaEEApplicationToApplyDifferentSettingsin >), но подумал, что это может работать и для внедрения переменных в web.xml. Увы, это не
${project.version}
в web.xml? - person Aleksandr M   schedule 22.11.2017