java - YUI 压缩器在构建时压缩和替换

标签 java javascript maven yui

我试图找到 js/css maven项目的压缩工具,所以我找到了这个线程 - Maven Javascript Compressor

一切正常,但有一个问题我仍在试图解决。

当您不设置后缀 yui 时,它会设置 *-min默认情况下,并在旧文件旁边创建一个新文件。例如,如果我有 scripts.js使用该插件构建 Maven 后,我将同时拥有 scripts.jsscripts-min.js文件。我只需要 *-min文件。如果我设置<nosuffix>为 true 表示压缩成功,但不会覆盖文件。

有没有办法让我只拥有同名的压缩文件?

最佳答案

是的,您使用的 maven Javascript 压缩器确实压缩了文件。 但是在ma​​ven包生命周期期间,压缩发生在prepare-package阶段,之后,在package阶段期间,maven-war-插件将复制原始文件并覆盖压缩器刚刚执行的操作。 下面的配置是我解决问题的方法,我将js文件压缩到另一个文件夹,然后在打包阶段将其复制回来。

    <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.5.1</version>
            <executions>
                <execution>
                <id>yui-compress</id>
                <phase>prepare-package</phase>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <excludes>
                    <exclude>**/*-min.js</exclude>
                    <exclude>**/*.min.js</exclude>
                    <exclude>**/*-min.css</exclude>
                    <exclude>**/*.min.css</exclude>
                    <exclude>**/amazeui*</exclude>
                    <exclude>**/*.css</exclude>
                </excludes>
                <encoding>UTF-8</encoding>
                <nosuffix>true</nosuffix>
                <statistics>false</statistics>
                <linebreakpos>5000</linebreakpos>
                <useSmallestFile>true</useSmallestFile>
                <jswarn>false</jswarn>
                <warSourceDirectory>${basedir}/web</warSourceDirectory>
                <webappDirectory>${project.build.directory}/min</webappDirectory>
                <skip>false</skip>
            </configuration>
        </plugin> 
         <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webResources>
                    <resource>
                        <directory>${project.build.directory}/min</directory>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

关于java - YUI 压缩器在构建时压缩和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15273367/

相关文章:

java - 通过 Stripes 将 POST 数据映射到对象

java - Selenium:Internet Explorer 中的 NoSuchElementException

javascript - 链接到水平网页上的某个部分

java - Spring-mvc + Spring-Security + Thymeleaf - 错误解决模板

java - 仅基于对象的不同参数之一向 if 语句添加条件

java - 将类变量传递给另一个类

javascript - jQuery 创建一个带有 href 属性的

javascript - 在 .po 翻译文件中使用 ui-sref 进行 Angular-gettext

maven - 有什么办法可以加快maven构建速度吗?

java - Maven 找不到 web.xml