为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   

然后,构建的战争将包含完全相同的文件,但压缩。 (这可能不是执行缩小的最佳方法,但它不会改变开发中的任何内容)

希望这可以帮助…