Селективная замена регулярного выражения с помощью 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.