2012-01-17 2 views
2

antコピータスクでは、コピー先の場所にパスに「乱数」フォルダがあります。私はそれを処理するためのパスに*を入れようとすると、Antはそれを文字通り取ります。すなわち、それを展開しませんが、 "*"と呼ばれるフォルダを作成してそこにコピーします。どのように私は(文句を言わない複数のフォルダに展開するしかない1フォルダがそこにあるので、*)は、実際のフォルダ名に*を展開するのAntを教えてくださいAntのコピータスクの展開*

<property name="dest" value="a/*/b/my.jar" /> 
<property name="src" value="my.jar" /> 

<copy file="${src}" tofile="${dest}" overwrite="true" verbose="true"/> 

答えて

5

copyタスクがtofile属性にワイルドカードをサポートしていません。 。宛先ディレクトリが存在するが宛先ファイルが存在しない場合は、dirsetを使用してディレクトリを取得できます。ような何か:

<dirset dir="${basedir}" id="dest.dir"> 
     <include name="a/*/b" /> 
</dirset> 
<property name="dest" value="${toString:dest.dir}/my.jar"/> 
<property name="src" value="my.jar" /> 

<copy file="${src}" tofile="${dest}" overwrite="true" verbose="true"/> 

代わりのプロパティのヘルパーを使用して(${toString:....})構文あなたがpathconvert taskを使用する可能性があります:

<pathconvert property="destdir" refid="dest.dir"/> 
<property name="dest" value="${destdir}/my.jar"/>