使用maven-replacer-plugin替换正则表达式

时间:2014-08-05 18:41:35

标签: regex maven maven-replacer-plugin

我想使用 maven-replacer-plugin 在我的index.html文件中重命名我的javascript import语句。

但是我只想在路径以app

开头的情况下执行此操作

index.html代码段

...
<!-- rename this one to app/something12345.js -->
<script src="app/something.js"></script>

<!-- leave this one as it is -->
<script src="vendor/angular.js"></script>
...

到目前为止,在我的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次匹配。

我可以在<token>部分添加一些神奇的咒语来实现这一目标吗?

1 个答案:

答案 0 :(得分:6)

我设法使用以下

执行此操作
<replacement>
    <token>((app/)(.)*)(\.js")</token>
    <value>$112345.js</value>
</replacement>

虽然在我的实际应用程序中,我将12345替换为${buildNumber}变量,因此语法为

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

我希望这可能使解决方案更容易理解