Maven replacer插件,正则表达式无法正常工作

时间:2012-07-19 10:14:05

标签: regex maven

我正在使用Maven开发一个项目,并使用maven-replacer-plugin替换缩小版本的所有css / javascript文件。

我想替换它:

<!-- JSMIN js/script.min.js -->
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script src="js/jquery.placeholder.min.js"></script>
    <script src="js/smoothscroll.js" async=""></script>
    <script src="js/javascript.js"></script>
    <script src="js/swfobject.js"></script>
    <script src="js/player.js"></script>
<!-- END JSMIN -->

用这个:

<script src="js/script.js"></script>

与css类似。

该插件说它已将正则表达式应用于我的4个html文件,这是正确的但我看不到这些文件的更改。

以下是插件的配置

<plugin>
    <groupId>com.google.code.maven-replacer-plugin</groupId>
    <artifactId>maven-replacer-plugin</artifactId>
    <executions>
        <execution>
            <phase>prepare-package</phase>
            <goals>
                <goal>replace</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <basedir>${project.basedir}/src/main/webapp/</basedir>
        <outputDir>test</outputDir>
        <includes>
            <include>**/*.html</include>
        </includes>
        <regexFlags>
            <regexFlag>CASE_INSENSITIVE</regexFlag>
            <regexFlag>MULTILINE</regexFlag>
            <regexFlag>DOTALL</regexFlag>
        </regexFlags>
        <replacements>
            <replacement>
                <token>&lt;!-- JSMIN (.*) --&gt;(.*?(\r))+.*?&lt;!-- END JSMIN --&gt;</token>
                <value>&lt;script src="$1"&gt;&lt;/script&gt;</value>
            </replacement>
            <replacement>
                <token>&lt;!-- CSSMIN (.*) --&gt;(.*?(\r))+.*?&lt;!-- END CSSMIN --&gt;</token>
                <value>&lt;link href="$1" rel="stylesheet" type="text/css"/&gt;</value>
            </replacement>
        </replacements>
    </configuration>
</plugin>

正则表达式对我和我的同事来说似乎是正确的......任何帮助? 提前致谢

2 个答案:

答案 0 :(得分:6)

http://code.google.com/p/maven-replacer-plugin/wiki/UsageWithOtherPlugins

在将文件打包成战争之前,需要在文件上运行替换程序。如果它们都在同一阶段(即prepare-package)执行,请确保在maven-replacer-plugin之前添加它。确保使用版本2.0.1或更低版本的war插件,因为常用的2.1.0+拷贝资源两次覆盖替换。使用以下war插件配置允许在打包之前修改文件。

答案 1 :(得分:0)

我已将您的代码复制粘贴到测试pom中,并且工作正常。

您确定要检查正确的文件吗?更新的文件位于/ src / main / webapp / test

微米。