Java YUI压缩机压缩并在制造时更换
我试图为maven项目找到js/css压缩工具,所以我找到了这个线程- 这一切都很好,但有一个问题我仍在努力解决 如果不设置后缀yui,则默认情况下会设置*-min,并在旧文件的旁边创建一个新文件。因此,例如,如果在使用该插件构建maven之后我有scripts.js,那么我将同时拥有scripts.js和scripts-min.js文件。我只需要*-min文件。如果我将设置为true,则表示压缩成功,但不会覆盖文件Java YUI压缩机压缩并在制造时更换,java,javascript,maven,yui,Java,Javascript,Maven,Yui,我试图为maven项目找到js/css压缩工具,所以我找到了这个线程- 这一切都很好,但有一个问题我仍在努力解决 如果不设置后缀yui,则默认情况下会设置*-min,并在旧文件的旁边创建一个新文件。因此,例如,如果在使用该插件构建maven之后我有scripts.js,那么我将同时拥有scripts.js和scripts-min.js文件。我只需要*-min文件。如果我将设置为true,则表示压缩成功,但不会覆盖文件 有没有一种方法可以让我只使用相同名称的压缩文件?最后为maven ant插件编
有没有一种方法可以让我只使用相同名称的压缩文件?最后为maven ant插件编写了这个ant脚本:
<delete includeEmptyDirs="false">
<fileset dir="${basedir}/target/${project.build.finalName}/resources/js" excludes="**/*-min.js" />
</delete>
<move todir="${basedir}/target/${project.build.finalName}/resources/js" includeemptydirs="false">
<fileset dir="${basedir}/target/${project.build.finalName}/resources/js" />
<mapper type="glob" from="*-min.js" to="*.js" />
</move>
<delete includeEmptyDirs="false">
<fileset dir="${basedir}/target/${project.build.finalName}/resources/css"
excludes="**/*-min.css, **/*.ttf, **/*.png, **/*.jpg" />
</delete>
<move todir="${basedir}/target/${project.build.finalName}/resources/css" includeemptydirs="false">
<fileset dir="${basedir}/target/${project.build.finalName}/resources/css" />
<mapper type="glob" from="*-min.css" to="*.css" />
</move>
简要说明:脚本首先删除旧的未压缩文件,然后将*-min.js和*-min.css文件重命名为*.js和*.css
工作正常,刚刚测试过。此外,如果您在/js或/css文件夹中有一些不同的文件,而不是.js或.css,请确保没有删除它们,并将这些扩展名放在exclude属性中。是的,您正在使用的maven Javascript压缩器压缩了这些文件。 但是在maven软件包生命周期中,压缩发生在准备软件包阶段,之后,在软件包阶段,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>
也许将输出目录更改为另一个?是的,听起来不错,但源文件仍然保留。。我在想一个蚂蚁脚本…类似的东西?没那么复杂。只是一个简单的ant复制任务,复制后删除。这只是一个简单的复制任务吗?看看评论吧!