Maven YUI压缩javascript

Maven YUI压缩javascript,javascript,maven,yui-compressor,Javascript,Maven,Yui Compressor,我正在尝试设置YUI压缩程序,以便每次我构建要部署的war时,它都会缩小我的JS并对其进行恢复,以进行缓存破坏。我已经设法获得了它,因此缩小的文件可以使用maven版本作为后缀,但是原始文件也仍然存在,而且每次构建时都需要更新我的所有HREF(在本地,我仍然希望使用原始文件)。有人能建议如何解决这个问题吗 以下是我对插件的看法: <plugin> <groupId>net.alchim31.maven</groupId>

我正在尝试设置YUI压缩程序,以便每次我构建要部署的war时,它都会缩小我的JS并对其进行恢复,以进行缓存破坏。我已经设法获得了它,因此缩小的文件可以使用maven版本作为后缀,但是原始文件也仍然存在,而且每次构建时都需要更新我的所有HREF(在本地,我仍然希望使用原始文件)。有人能建议如何解决这个问题吗

以下是我对插件的看法:

        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
                <excludes>
                    <exclude>**/farbtastic/*</exclude>
                    <exclude>**/jquery.js</exclude>
                    <exclude>**/*.css</exclude>
                </excludes>
                <suffix>.${version}</suffix>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

net.alchim31.maven
yuicompressor maven插件
1.1
**/滑稽的/*
**/jquery.js
**/*.css
.${version}
压缩

版本

1.1已经很老了。我们使用1.3.2

在本地,我仍然希望使用原版

你应该用这个。您应该有两个配置文件(或者更多)

  • 一个用于发展/当地
  • 一个用于生产/发布/UAT等(仅此包含最小化插件)
这是我们实现的,并且在很长一段时间内工作得很好:请尝试这种方式(注意-也请参见下面war插件中的内容,这非常重要。您可能需要更改targetPath,以获得最佳效果):


生产
.......
.......
net.alchim31.maven
或者Apache mod_rewrite(如果前面使用Apache)将其重写为:

<script type='text/javascript' src='/js/xyz.js' ></script> 

当浏览器向服务器发出请求时

解决方案2-版本控制(使用YUI插件但不使用URL重写)

  • 您可以使用YUI插件将该版本添加到js
  • 然后将版本号存储在属性文件中
  • 编写一个自定义taglib(如上文所述),该taglib使用上述解决方案中给出的版本号进行渲染

此解决方案的优点是,您不需要重写url,但仍然需要自定义标记库。

版本

1.1已经很老了。我们使用1.3.2

在本地,我仍然希望使用原版

你应该用这个。您应该有两个配置文件(或者更多)

  • 一个用于发展/当地
  • 一个用于生产/发布/UAT等(仅此包含最小化插件)
这是我们实现的,并且在很长一段时间内工作得很好:请尝试这种方式(注意-也请参见下面war插件中的内容,这非常重要。您可能需要更改targetPath,以获得最佳效果):


生产
.......
.......
net.alchim31.maven
或者Apache mod_rewrite(如果前面使用Apache)将其重写为:

<script type='text/javascript' src='/js/xyz.js' ></script> 

当浏览器向服务器发出请求时

解决方案2-版本控制(使用YUI插件但不使用URL重写)

  • 您可以使用YUI插件将该版本添加到js
  • 然后将版本号存储在属性文件中
  • 编写一个自定义taglib(如上文所述),该taglib使用上述解决方案中给出的版本号进行渲染

此解决方案的优点是,您不需要重新编写url,但仍然需要自定义标记库。

谢谢,我现在就来试试。如果我只是通过eclipse在本地运行,是否需要配置文件?配置文件是我猜想的最标准/最干净的方式。这种方式很有效,但它没有解决需要文件版本号和最新更新hrefs的问题version@Abby-请查看我的最新答案。如果您感到高兴并且成功,请随时接受/投票。再次感谢。但我仍然遇到同样的问题:当使用版本生成压缩文件时,原始文件仍然存在,JSP仍然指向原始文件。你的建议奏效了,但没有达到我的目的。谢谢,我现在就试试看。如果我只是通过eclipse在本地运行,是否需要配置文件?配置文件是我猜想的最标准/最干净的方式。这种方式很有效,但它没有解决需要文件版本号和最新更新hrefs的问题version@Abby-请查看我的最新答案。如果您感到高兴并且成功,请随时接受/投票。再次感谢。但我仍然遇到同样的问题:当使用版本生成压缩文件时,原始文件仍然存在,JSP仍然指向原始文件。你的建议奏效了,但没有达到我的目的。
<script type='text/javascript' src='/js/4112-13178/xyz.js' ></script>
<link type='text/css' href='/style/4112-13178/someStyle.css'  rel='stylesheet' />
<script type='text/javascript' src='/js/xyz.js' ></script>