Насколько я понимаю, вы пытаетесь поддерживать версию в актуальном состоянии, ожидая, что остальное останется прежним. Есть две альтернативы.
Первый - удалить версию из имени, чтобы HTML-код не менялся. Вы можете увидеть практический пример, выполнив поиск archiva-applet
здесь: http://svn.apache.org/repos/asf/archiva/tags/archiva-1.3/archiva-modules/archiva-web/archiva-webapp/pom.xml
В этом примере, поскольку вы все равно не хотите, чтобы апплет в WEB-INF/classes
, он не включается в веб-приложение, а затем включается через плагин Dependency:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>copy</id>
<phase>process-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>archiva-applet</artifactId>
<version>${project.version}</version>
<outputDirectory>src/main/webapp</outputDirectory>
<destFileName>archiva-applet.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Если вы используете Maven 2.1.0+, вы можете использовать фазу prepare-package
и скопировать ее прямо в вывод без изменения вашего исходного каталога.
Затем вы ссылаетесь на апплет в HTML с одним именем.
Альтернативное решение, если вы хотите продолжить фильтрацию и сохранить версию, - это использовать общее свойство:
<properties>
<applet.version>1.2.3</applet.version>
</properties>
...
<dependency>
<groupId>my.group</groupId>
<artifactId>my.applet</artifactId>
<version>${applet.version}</version>
</dependency>
...
После этого вы можете использовать ${applet.version}
в HTML, и вам все равно придется изменить его только в одном месте.