我试图找到 js/css
maven项目的压缩工具,所以我找到了这个线程 - Maven Javascript Compressor
一切正常,但有一个问题我仍在试图解决。
当您不设置后缀 yui 时,它会设置 *-min
默认情况下,并在旧文件旁边创建一个新文件。例如,如果我有 scripts.js
使用该插件构建 Maven 后,我将同时拥有 scripts.js
和scripts-min.js
文件。我只需要 *-min
文件。如果我设置<nosuffix>
为 true 表示压缩成功,但不会覆盖文件。
有没有办法让我只拥有同名的压缩文件?
最佳答案
是的,您使用的 maven Javascript 压缩器确实压缩了文件。 但是在maven包生命周期期间,压缩发生在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/