我已经构建了一个复杂的 ajax 驱动的单页 web 应用程序,它使用一个提供 JSON 的 RESTful 后端 web 服务。 javascript 被分成许多不同的文件,每个文件代表某种功能或组件。
虽然该服务一直在进行 alpha 测试,但我只是单独提供所有这些文件而没有缩小。但是现在我想推出一个 beta 版本,我真的需要 merge 文件、缩小它们并对其进行版本控制。我想使用 Maven 将它添加到我的构建过程中。
我正在使用以下“类型”的 javascript 文件,其中 #3 和 #4 是我关心的问题:
我想在构建过程中执行以下操作:
app-2.0.6.min.js
,其中 2.0.6 是 maven 项目版本。feature-abc-56ab32de29.min.js
,其中 56ab32de29 是该特定文件的版本号。<script>
更新 HTML 文件标记以指向具有正确版本号的 javascript 文件。是否有 maven 插件可以帮助连接?
是否有 maven 插件可以帮助缩小?理想情况下,我想使用 Google Closure Compiler,但如果更简单,我会与其他人一起使用。
是否有 maven 插件可以帮助进行版本控制?
有没有办法让 type 4 javascript 文件有独立的版本号?理想情况下,如果文件在 2.0.5 和 2.0.6 版本之间没有变化,则用户无需下载新版本,他们的缓存版本就可以正常工作。我正在使用 GIT 进行源代码控制,那么有没有办法使用文件的 GIT 哈希码进行版本控制?
是否有一种解决方案可以压缩常规 HTML 文件中内联的 javascript 而不会杀死 HTML?
是否有一种解决方案可以同时压缩和版本化我的 CSS 文件?
最佳答案
看看yuicompressor-maven-plugin .它可以聚合各种 js(以及 css)文件,并对其进行压缩和混淆。
https://stackoverflow.com/questions/3965801/