为java / spring / maven应用程序组合和压缩javascript / css的不引人注目的方法?
我想添加某种库,或maven插件,或“东西”来组合和压缩我的javascript和css源文件。
但是,我认为用Java进行不显眼的操作非常困难。 Rails人员已经解决了这个问题……它使用未加入/未压缩的文件进行开发,然后在生产过程中压缩所有内容。 它不会引人注目,因为你不必更改你的html标题或类似的东西 – 它适用于测试和生产。 这或多或少都是我想要的。 它甚至存在于Java空间中吗?
我想要的最后一件事是评论和取消注释用于开发和制作的freemarker / html代码行 – 我希望一切都是一样的。 理想情况下,我希望能够让Tomcat运行并编写我的javascript和css代码,并立即查看我的更改 – 没有延迟或提升。 我也不想在每次进行更改时手动运行命令来生成新的javascript …或者甚至让一些守护进程不断更新它(因为那时我可能不会立即测试)。 与此同时,如果我打算将我的战争打包生产,我希望它能够使用加入和压缩的文件。
这有可能吗? 如果是这样,我应该看什么工具? 我知道有很多人会做一些这样的事情,但是他们在“不引人注目”的方面做得不够。
谢谢
对我com.samaxes.maven
的解决方案是使用maven-minify-plugin
com.samaxes.maven
maven-minify-plugin
(groupId是com.samaxes.maven
),但仅限于生产时。 使用构建属性指定您是否处于开发模式。 链接到插件
你可以有这样的东西(我不知道freemarker所以我只是粘贴一些JSP代码,但我相信它可以很容易地转换):
"/> "/> "/> "/> "> "> "> "> "> "/> ">
这种方式在开发时使用非缩小/组合的JS / css,并且仅在构建生产时使用缩小的css。
编辑:这里要求的是在ServletContext上公开Spring定义的bean的代码:
Jawr是一个提供css / js文件压缩和合并的库。 它为html include语句提供了一个Tag。 这使得可以使用相同的未修改的JSP页面进行开发(使用未修改的css / js)和生产(合并和缩小)。
wro4j接缝到类似的function。
使用maven-minify-plugin
也适合我。
但我设法找到一种使用它的方法比使用条件标签(如c:when
,通过将它与maven-war-plugin
结合使用)更具侵入性。
此代码段可以按原样使用:
首先,首先缩小CSS / JS而不使用后缀(意味着文件保留其名称)
com.samaxes.maven minify-maven-plugin 1.7.2 default-minify prepare-package UTF-8 true true css *.css js *.js minify
然后,在构建war文件时,不要覆盖CSS / JS文件(已经通过minify目标在目标中生成)
org.apache.maven.plugins maven-war-plugin 2.4 **/*.css, **/*.js
然后,构建的战争将包含完全相同的文件,但压缩。 (这可能不是执行缩小的最佳方法,但它不会改变开发中的任何内容)
希望这可以帮助…