我已经使用 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)<!-- replaceCSS(.|\s)*?replaceCSSEnd --></token>
<value><link rel="stylesheet" type="text/css" href="styles/styles.css"/></value>
</replacement>
<replacement>
<token>(?m)<!-- replaceJS(.|\s)*?replaceJSEnd --></token>
<value><script src="scripts/scripts.js"/></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/