您好我正在尝试压缩目录中的所有.css和.js文件,并使用相同的名称覆盖原始文件(无连接)
我正在使用此代码https://stackoverflow.com/a/3826896/579646(也尝试了许多其他教程),但它不起作用。
我试过这个
<target name="css.minify">
<apply executable="java" parallel="false" dest="${builddir}/${NAME}/site/assets/css" verbose="true">
<fileset dir="${builddir}/${NAME}/site/assets/css" includes="**/*.css"/>
<arg line="-jar"/>
<arg path="yuicompressor.jar"/>
<arg line="--line-break 0"/>
<srcfile/>
<arg line="-o"/>
<arg line="-v"/>
<mapper type="glob" from="*.css" to="*-min.css"/>
<targetfile/>
</apply>
<move todir="${builddir}/${NAME}/site/assets/css" overwrite="true" >
<fileset dir="${builddir}/${NAME}/site/assets/css" />
<mapper type="glob" from="*-min.css" to="*.css"/>
</move>
</target>
和这个
<target name="js.minify">
<apply executable="java" parallel="false">
<fileset dir="${builddir}/${NAME}/site/assets/js" includes="**/*.js" casesensitive="no"/>
<arg line="-jar"/>
<arg path="yuicompressor.jar"/>
<srcfile/>
<arg line="-o"/>
<mapper type="glob" from="*.js" to="*.js"/>
<targetfile/>
</apply>
</target>
他们似乎都失败了
我做错了什么?
答案 0 :(得分:1)
我直接使用jar进行了测试,看看为什么不能正常工作。 我从命令行了解到这是正确的命令选项序列:
$java -jar WEB-INF/lib/yuicompressor.jar -v -o <destination-file-min.js> <source-file.js>
请注意,如果目标文件的路径(父文件夹)不存在,则库不会创建它(java.io.FileNotFoundException)。
所以,Ant:
<copy flatten="false" includeemptydirs="true" todir="${js.target.dir}">
<fileset dir="${js.source.dir}" excludes="**/*.*" includes="**/*" />
</copy>
<apply executable="java" dest="${js.target.dir}" parallel="false" verbose="true" ignoremissing="true">
<fileset dir="${js.source.dir}" includes="**/*.js" excludes="**/*-min.js, **/*.min.js"/>
<arg line="-jar"/>
<arg path="docroot/WEB-INF/lib/yuicompressor.jar"/>
<arg line="-o"/>
<mapper type="glob" from="*.js" to="*-min.js"/>
<targetfile/>
<srcfile/>
</apply>
需要应用前复制以创建目标缩小js的相对路径。 请注意,jar文件和srcfile按照jar的预期反转。 我只粘贴了js部分..对于CSS来说它是一样的。
答案 1 :(得分:-1)
我将它用于css和js,它的工作正常:
<apply executable="java" parallel="false">
<fileset dir="${src.dir}/js" includes="*.js" />
<arg line="-jar" />
<arg path="${lib.path}/yuicompressor-2.4.7.jar" />
<srcfile />
<arg line="-o" />
<mapper type="glob" from="*.js" to="${dest.dir}/js/*.js" />
<targetfile />
</apply>
在js.minify目标中你的共享似乎是你要覆盖js文件(看看mapper标签),小心一点。
同样在css你移动所有的css并在压缩后重命名它们,这可以用yui压缩器目标完成(查看我的代码)。
我希望这会有所帮助。