2013-05-16 15 views
9

YUIコンプレッサーをAntビルドスクリプトで使用する方法を検索したところ、私はついにそれを動作させました。多くの古い例(< 2010)は、Antタスクを作成してビルドスクリプト内で使用するために存在しますが、それは私にとって過酷でした。YUIコンプレッサーをAntビルドスクリプトで使用する方法

例の多くも古く、Antの設定やAntタスクの設定が必要です。以下の解決策は、簡単で簡単で効果的なものです。

答えて

14

以下は、私の<target>タグのいずれかに追加されましたすべて 1つのディレクトリ内のjavascriptファイルが圧縮されています。これらのファイルは元の名前を保持します。 CSSでこれを行うには、単に 'js'を 'css'に切り替えて、それに応じてパスを更新します。

これはYUI Compressor 2.4.7で行いました。クラスパスやその他の設定変更を行わずにEclipse JunoでAntビルドスクリプトを実行しました。

<!-- Minimizing Javascript files --> 
    <echo message="Compressing Javascript files at location: ${build.root}/resources/js/*.js" /> 
    <java jar="c:/dev/lib/yuicompressor-2.4.7/build/yuicompressor.jar" fork="true"> 
     <arg value="${build.root}/resources/js/*.js" /> <!-- input path for JS files --> 
     <!--<arg value="-v" /> --><!-- Turn on verbose --> 
     <arg value="-o" /> 
     <arg value="'.js$:.js'" /> 
     <arg value="${build.root}/resources/js/*.js" /> <!-- output path for JS files --> 
     <classpath> 
      <pathelement location="c:/dev/lib/yuicompressor-2.4.7/build/yuicompressor.jar"/> 
     </classpath> 
    </java> 

この回答を改善してください。上記の解決策は私のために働くが、私は専門家ではない。

+0

? ? 上記のスクリプトが.jsファイルを自分のファイルに圧縮するため... –

+2

パスは存在しますが、 - /home/shwetanka/projects/webapp/webapp/content/js/mobile/*.jsに対してFileNotFoundExceptionが与えられます。 – Shwetanka

+0

@Shwetanka質問がある場合は、独自の質問スレッドを作成し、問題を示すこの回答を参照する必要があります。 –

5

私は以前の答えでFileNotFoundExceptionを取得して以来、ファイルを縮小するために次の解決策を使用しています。

CSSを小さくするには、jsを下記のcssに置き換えてください。 http://code.google.com/p/yui-compressor-ant-task/またはこの1:適用よりもすっきりと思われるhttps://github.com/parambirs/ant-yui-compressor

<target name="compress" description="compress the JS files"> 
    <copy todir="temp/js" overwrite="yes"> 
     <fileset dir="original/js"/> 
    </copy> 
    <apply executable="java" parallel="false" dest="temp/js"> 
     <fileset dir="temp/js" includes="**/*.js" /> 
      <arg line="-jar"/> 
      <arg path="test_lib/yuicompressor-2.4.8.jar" /> 
      <arg line="-v"/> 
      <srcfile/> 
      <arg line="-o"/> 
      <mapper type="glob" from="*.js" to="*-min.js"/> 
      <targetfile/> 
    </apply> 
    <move todir="original/js" overwrite="true"> 
     <fileset dir="temp/js" /> 
     <mapper type="glob" from="*-min.js" to="*.js"/> 
    </move> 
</target> 
+0

私はhtml5boilerplateプロジェクトのAntスクリプトに基づいて同じ問題を抱えていました。一時ディレクトリに行くというあなたの解決策は、まずそれを修正したようです。 – Barrie

0

私はこのAntタスクを使用すると思います。

+0

非常に良い解決策。設定は非常に単純です。 –

1

私はビクターのコードを試しました。実際に必要な一時ディレクトリはありませんでした。私はこのコードを使用し、それは私のために働いた。 1 .jsファイルにすべての.jsファイルを圧縮する方法

<apply executable="java" parallel="false" > 
       <fileset dir="${build.root}/resources/js" includes="**/*.js" /> 
        <arg line="-jar"/> 
        <arg path="${basedirectory}/yuicompressor-2.4.8.jar" /> 
        <srcfile/> 
        <arg value="-o" /> 
        <arg value="'.js$:.js'" /> 
        <!-- output path for JS files --> 
        <arg value="${build.root}/resources/js/*.js" /> 
        <arg line="--nomunge" /> 
        <arg line="--preserve-semi" />    
      </apply> 

+0

既に利用可能な「.min.js」ファイルを再度圧縮することを除外するために、提供されたソリューションを調整する方法を教えてください。 「**/min *」だけでなく「」に「* /。min.js」という値を持つ属性を 'excludes'属性に追加しようとしましたが、うまくいかないようです。 –

+0

"除外"であり、 "除外"ではありません。

関連する問題