用缩小版替换html中的源文件

时间:2017-06-19 23:28:08

标签: javascript css maven

我已经使用maven插件成功创建了我的css和javascript文件的缩小/压缩版本

但是现在我想要替换加载所有这些文件的主html页面部分,我的意思是我在我的HTML中有这个

<link rel="stylesheet" href="styles/app/01.css">
<link rel="stylesheet" href="styles/app/02.css">
<link rel="stylesheet" href="styles/app/03.css">

我需要用这样的东西替换

<link rel="stylesheet" href="styles/app/minified.css">

在javascript部分我有这个

<script src="scripts/01.js"></script>
<script src="scripts/02.js"></script>
<script src="scripts/03.js"></script>

我需要替换为

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

有没有办法用maven做到这一点?还是我需要别的东西?

1 个答案:

答案 0 :(得分:0)

我发现com.google.code.maven-replacer-plugin取得了一些成功。这是我到目前为止所做的事情

首先,我用&#34;标记&#34;

包围了我的样式和脚本
<!-- replaceCSS -->
<link rel="stylesheet" href="styles/app/01.css">
<link rel="stylesheet" href="styles/app/02.css">
<link rel="stylesheet" href="styles/app/03.css">
<!-- replaceCSSEnd -->
...
...
...
<!-- replaceJS -->
<script src="scripts/01.js"></script>
<script src="scripts/02.js"></script>
<script src="scripts/03.js"></script>
<!-- replaceJS -->

在我的pom中我已经包含了插件

<plugin>
                    <groupId>com.google.code.maven-replacer-plugin</groupId>
                    <artifactId>replacer</artifactId>
                    <version>1.5.0</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>replace</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <file>target/${project.build.finalName}/app/index.html</file>
                        <replacements>
                            <replacement>
                                <token>(?m)&lt;!-- replaceCSS(.|\s)*?replaceCSSEnd --&gt;</token>
                                <value>&lt;link rel="stylesheet" type="text/css" href="styles/styles.css"/&gt;</value>
                            </replacement>
                            <replacement>
                                <token>(?m)&lt;!-- replaceJS(.|\s)*?replaceJSEnd --&gt;</token>
                                <value>&lt;script src="scripts/scripts.js"/&gt;</value>
                            </replacement>
                        </replacements>
                    </configuration>
                </plugin>

当我运行构建,或者使用mvn replacer测试替换时:替换我得到一个类似

的异常
 at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)

但它只发生在我有两个替换标签时,如果我只留下一个用于css文件,它工作正常,替换是正确的

另一件事是,在战争打包后更换正在进行,这显然是错误的