Селективная замена регулярного выражения с помощью maven-replacer-plugin

Я хотел бы использовать maven-replacer-plugin, чтобы переименовать свои операторы импорта javascript в файл index.html.

Однако я хотел бы сделать это только тогда, когда путь начинается с app

index.html snippet

...
<!-- rename this one to app/something12345.js -->

<!-- leave this one as it is -->

...

В моем pom.xml до сих пор у меня есть эта конфигурация для maven-replacer-plugin

<plugin>
 <groupid>com.google.code.maven-replacer-plugin</groupid>
 <artifactid>replacer</artifactid>
 <version>1.5.2</version>
 <executions>
 <execution>
 <phase>prepare-package</phase>
 <goals>
 <goal>replace</goal>
 </goals>
 </execution>
 </executions>
 <configuration>
 <file>target/${project.build.finalName}/index.html</file>
 <replacements>
 <replacement>
 <token>(\.js")</token>
 <value>12345.js"</value>
 </replacement>
 </replacements>
 </configuration>
 </plugin>

В настоящий момент это, очевидно, заменит все совпадения .js.

Есть ли какое-то магическое заклинание, которое я могу добавить в раздел для достижения этого?

1 ответ

Мне удалось сделать это, используя следующие

<replacement>
 <token>((app/)(.)*)(\.js")</token>
 <value>$112345.js</value>
</replacement>

хотя в моем реальном приложении я заменил 12345 на переменную ${buildNumber}, поэтому синтаксис был

<replacement>
 <token>((app/)(.)*)(\.js")</token>
 <value>$1${buildNumber}.js</value>
</replacement>

который, я надеюсь, может сделать решение более понятным

licensed under cc by-sa 3.0 with attribution.