2011-01-18 7 views
0

マクロ定義を使用して、ファイルのセットを別の場所やFTPサーバーにコピーしています。しかし、コピーはかなり遅いので、7zを使ってバンドルを圧縮し、すべてを1つのファイルとしてFTPにコピーします。それは7zを使用して行うことができますか?私amcrodefは、それより下で動作します:ANTのマクロ定義に7zを組み入れる

<macrodef name="copyimages"> 
    <attribute name="todir"/> 
    <sequential> 
    <copy todir="@{todir}" overwrite="true" failonerror="false"> 
     <fileset dir="${build.output.dir}"> 
        <include name="logs/*${build.id}*armv5*scan2.html"/> 
        <include name="logs/*${build.id}*main.ant.log"/> 
     <include name="logs/*${build.id}*bom.xml"/> 
     <include name="logs/compile/*${build.id}*.*"/> 
     <include name="logs/cone/*${build.id}*.*"/> 
     <include name="logs/post/*${build.id}*.*"/> 
     <include name="logs/roms/*${build.id}*.*"/> 
     <include name="**/*${build.id}_codescanner/**"/> 
     </fileset> 
    </copy> 
    </sequential> 
</macrodef> 


<copyimages todir="${publish.ssdoci.dir}/${env.version}.${build.number}"/> 

答えて

1

あなたが特定の程度7z、あなたはZip Taskを使用することができていない場合。

あなたは、私が「幹部」と7z.exe使用することが最良の選択肢だと思います...代わりに<copy></copy

<zip destfile ="@{destfile}"> 
    <fileset dir="${build.output.dir}"> 
    <include name="logs/*${build.id}*armv5*scan2.html"/> 
    <include name="logs/*${build.id}*main.ant.log"/> 
    <include name="logs/*${build.id}*bom.xml"/> 
    <include name="logs/compile/*${build.id}*.*"/> 
    <include name="logs/cone/*${build.id}*.*"/> 
    <include name="logs/post/*${build.id}*.*"/> 
    <include name="logs/roms/*${build.id}*.*"/> 
    <include name="**/*${build.id}_codescanner/**"/> 
    </fileset> 
</zip> 

<copyimages destfile="${publish.ssdoci.file}-${env.version}.${build.number}"/> 
+0

あなたは上記のマクロで仕事ができるZIP構文を知ることが起こるのか? – mhuq

+0

@ user579910サンプル構文を使って答えを更新しました。 – Raghuram

0

をこのような何かを試みることができます。ここで

は、構文は次のとおりです。

C:\プログラムファイル\ 7-ジップ> 7z.exe A -t7z C:\ TEMP \ test.7z C:\ TEMP *

.TXT *このコマンドは、すべての.txtファイルをc:\ tempからアーカイブ "test.7z"に置き換えます。

乾杯!

1

7zipのタスクはありません。<ジップ>はパスワードでアーカイブすることはできません。 私のソリューションは、利用可能な7Z Antタスクがここにありますので

<target name="zip" depends="dist"> 
    <exec executable="C:\Program Files\7-Zip\7z.exe"> 
     <arg value="a" />       <!--archive--> 
     <arg value="-pMyPasswordt" />    <!-- password --> 
     <arg value="-r" />      <!-- recursiv --> 
     <arg value="C:\temp\2012-06-29\${programName}.zip" /> <!-- destination --> 
     <arg value="${jarFile}" />    <!-- files to archive --> 
    </exec> 
</target> 
0

です:http://www.pharmasoft.be/7z/

は、しかし、それをテストしていない、とサイトには、すでに少し時代遅れと思われます。

0

apache.orgによれば、7zがサポートされています。 osdir.comから
あなたはMavenを使用したzip

使用するのと同じように動作しますsevenzタスクの実装のコメントがありますか。

<artifactId>maven-antrun-plugin</artifactId> 
<dependencies> 
    <dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-compress</artifactId> 
    <version>1.8</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.ant</groupId> 
    <artifactId>ant-compress</artifactId> 
    <version>1.4</version> 
    </dependency> 
アリ

<taskdef resource="org/apache/ant/compress/antlib.xml" classpathref="maven.plugin.classpath"/> 
<sevenz destfile ="my.7z"> 
    <fileset dir="${build.output.dir}"> 
    <include name="logs/*${build.id}*armv5*scan2.html"/> 
    <include name="logs/*${build.id}*main.ant.log"/> 
    <include name="logs/*${build.id}*bom.xml"/> 
    <include name="logs/compile/*${build.id}*.*"/> 
    <include name="logs/cone/*${build.id}*.*"/> 
    <include name="logs/post/*${build.id}*.*"/> 
    <include name="logs/roms/*${build.id}*.*"/> 
    <include name="**/*${build.id}_codescanner/**"/> 
    </fileset> 
</sevenz> 
<un7z src="my.7z" dest="unpack" /> 
関連する問題