2011-09-28 10 views
2

これはたぶん一般的な使用例だと思います。私はパスのセットを定義します。WARのlibディレクトリへのAntパスをコピー

<path id="log4j.classpath"> 
    <fileset dir="${log4j.home}"> 
     <include name="log4j-1.2.16.jar"/> 
    </fileset> 
</path> 
<path id="junit.classpath"> 
    <fileset dir="${junit.home}"> 
     <include name="junit-4.8.2.jar"/> 
    </fileset> 
</path> 
<path id="all.classpath"> 
    <path refid="log4j.classpath"/> 
    <path refid="junit.classpath"/> 
</path> 

私は自分のWebサービスを構築するとき、私は持っている:

<target name="compile"> 
    <javac srcdir="${basedir}/src" destdir="${build.classes.dir}" debug="true"> 
     <classpath> 
      <path refid="all.classpath"/> 
     </classpath> 
    </javac> 
</target> 

は今、私は私の戦争のに、idのall.classpathとパス内のすべてのファイルをコピーしたいですlibディレクトリ。これを行う最善の方法は何ですか?

現在、私はこのようなものがあります:

<copy todir="${war-lib}" verbose="true"> 
    <fileset dir="${log4j.home}"> 
     <include name="log4j-1.2.16.jar" /> 
    </fileset> 
    <fileset dir="${junit.home}"> 
     <include name="junit-4.8.2.jar"/> 
    </fileset> 
<copy> 

をしかし、私はファイルセットを再定義する必要がありますする必要はありません。それはエラーが起こりやすく、デザインが悪いようです。より良い方法があるはずです。私を教えてください。

EDIT:それは面白いようにするには、私が唯一それが動作するかどうかわからANTへのアクセス1.6

+0

[この質問](http://stackoverflow.com/questions/1699731/how-do-i-convert-an-ant-path-into-a-fileset)に興味があるかもしれません。同様ですが、全く同じではありません。 –

+0

@prmatta:これを解決しましたか? [zipfileset](http://ant.apache.org/manual/Types/zipfileset.html)が問題の解決に役立つかどうかを確認してください。 – jweyrich

答えて

1

ないを持っていますが、(あなたがこれを行うにはAntの1.7以上が必要です)、これを試してみてください。

<copy todir="${war-lib}" verbose="true"> 
    <path><path refid="all.classpath" /></path> 
</copy> 
+0

これは役に立ちません。 OPはそれらのファイルをWAR内の特定のディレクトリにコピーする必要があります。 – jweyrich

関連する問題