Netbeans 7.1.2 および Ant 1.8.2 内で YUI Compressor を Ant タスクとして使用する際に問題があります。
「ミニファイ」ant ターゲットを実行すると、次のエラーが発生します。
taskdef class net.noha.tools.ant.yuicompressor.tasks.YuiCompressorTask cannot be found using the classloader AntClassLoader[]
minify ant ターゲットは次のようになります。
<target name="minify">
<!--${libs} is path to the downloaded jars -->
<property
name="yui-compressor.jar"
location="${file.reference.yuicompressor-2.4.2.jar}" />
<property
name="yui-compressor-ant-task.jar"
location="${file.reference.yui-compressor-ant-task-0.5.jar}" />
<property
name="YUIAnt.jar"
location="${file.reference.YUIAnt.jar}" />
<path id="task.classpath">
<pathelement location="${yui-compressor.jar}" />
<pathelement location="${yui-compressor-ant-task.jar}" />
<pathelement location="${YUIAnt.jar}" />
</path>
<!-- yui-compressor task definition -->
<taskdef
name="yui-compressor"
classname="net.noha.tools.ant.yuicompressor.tasks.YuiCompressorTask">
<classpath refid="task.classpath" />
</taskdef>
<!-- invoke compressor -->
<yui-compressor warn="false" charset="UTF-8" fromdir="${build.dir}" todir="${build.dir}">
<include name="/Projects/netbeans/testproj/src/resources/insert-image-dialog.js" />
<include name="/Projects/netbeans/testproj/src/resources/anotherjs.js" />
</yui-compressor>
</target>
私のNetbeansの「project.properties」ファイルは次のようになります
dist.dir=dist
dist.jar=${dist.dir}/Dec102012.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.yui-compressor-ant-task-0.5.jar=/Users/someuser/Downloads/yui-compressor-ant-task-0.5/bin/yui-compressor-ant-task-0.5.jar
file.reference.YUIAnt.jar=/Users/someuser/Downloads/YUIAnt.jar
file.reference.yuicompressor2.4.2.jar=/Users/someuser/Downloads/builder/componentbuild/lib/yuicompressor/yuicompressor-2.4.2.jar
includes=**
jar.compress=false
javac.classpath=\
${file.reference.yuicompressor-2.4.2.jar}:\
${file.reference.yui-compressor-ant-task-0.5.jar}:\
${file.reference.YUIAnt.jar}
また、次のことを試しました。
jar -tvf yui-compressor-ant-task-0.5.jar
0 Thu Feb 25 02:15:32 EST 2010 META-INF/
102 Thu Feb 25 02:15:30 EST 2010 META-INF/MANIFEST.MF
0 Thu Feb 25 02:15:30 EST 2010 net/
0 Thu Feb 25 02:15:30 EST 2010 net/noha/
0 Thu Feb 25 02:15:30 EST 2010 net/noha/tools/
0 Thu Feb 25 02:15:30 EST 2010 net/noha/tools/ant/
0 Thu Feb 25 02:15:30 EST 2010 net/noha/tools/ant/yuicompressor/
0 Thu Feb 25 02:15:30 EST 2010 net/noha/tools/ant/yuicompressor/tasks/
2993 Thu Feb 25 02:15:30 EST 2010 net/noha/tools/ant/yuicompressor/tasks/CompressionStatistics.class
1611 Thu Feb 25 02:15:30 EST 2010 net/noha/tools/ant/yuicompressor/tasks/FileType.class
2141 Thu Feb 25 02:15:30 EST 2010 net/noha/tools/ant/yuicompressor/tasks/YuiCompressorTask$1.class
7265 Thu Feb 25 02:15:30 EST 2010 net/noha/tools/ant/yuicompressor/tasks/YuiCompressorTask.class
175 Thu Feb 25 02:15:30 EST 2010 META-INF/INDEX.LIST
「YuiCompressorTask.class」が存在することは明らかです。これが、上記のエラーが意味をなさない理由です。
jar ファイルを追加する必要がある Ant Library ホームはありますか? 現在、ほとんどのプロジェクトと同様に、通常の Netbeans クラスパスに追加しています。Ant ランタイムはまったく別のライブラリ パスを使用していると思いますか?