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

标签 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 做到这一点?或者我还需要其他东西吗?

最佳答案

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

首先我用“标记”包围了我的样式和脚本

<!-- 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:replace 测试替换时,我得到一个异常,内容类似

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

但只有当我有两个替换标签时才会发生,如果我只为 css 文件留下一个,它工作正常,替换正确

另一件事是在 war 打包后进行替换,这显然是错误的

关于javascript - 用缩小版本替换 html 中的源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641436/

相关文章:

javascript - 在 .data 或 attr 中保存对象状态 - 性能与 CSS?

在 Internet Explorer 10+ 中将 Javascript/Jquery 导出到 Excel

java - 无法从 search.maven.org 下载 Artifact

java.lang.NoClassDefFoundError : javax/persistence/TableGenerators

html - 2个盒子之间的CSS 3假3D立方体旋转

java - 如何在 Maven 中使用 Joda-Time?

javascript - 如何将 javascript 内联代码转换为 jQuery?

javascript - 如何将 jQuery 日期选择器格式设置为 dd-mm-year

css - 为什么定位的 div 会重叠?

javascript - html正文中的选项卡菜单错误