1

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 ランタイムはまったく別のライブラリ パスを使用していると思いますか?

4

1 に答える 1

1

実行中の Apache Antから:

-lib オプションを使用すると、検索するディレクトリを追加できます。-lib オプションは、検索パスを指定します。パスのディレクトリ内のすべての jar またはクラスは、Ant のクラスローダーに追加されます。jar がクラスパスに追加される順序は次のとおりです。

  • コマンドラインの -lib 要素で指定された順序で -lib jar
  • ${user.home}/.ant/lib の jar (-nouserlib が設定されていない場合)
  • ANT_HOME/lib の jar
于 2013-03-13T15:45:35.593 に答える