2011-01-18 3 views
0

매크로 집합을 사용하여 파일 세트를 다른 위치와 FTP 서버에 복사했습니다. 하지만 복사가 아주 느려서 7z를 사용하여 번들을 압축하고 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 사용 같아요

<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

에서

<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> 

는 위의 매크로로 작업 할 수있는 ZIP 구문을 아시나요? – mhuq

+0

@ user579910 예제 구문으로 답변을 업데이트했습니다. – Raghuram

0

당신은 ... 대신 <copy></copy이 뭔가를 시도 할 수 있습니다.

C : \ 프로그램 Files \ -7- 우편> 7z.exe -t7z C : \ 임시 \의 test.7z C : \ 온도 *

이 .txt 여기서

는 구문 *이 명령은 c : \ temp의 모든 .txt 파일을 "test.7z"아카이브에 저장합니다.

건배!

1

7zip에 대한 작업이없고 < 우편 번호 >은 비밀번호로 보관할 수 없습니다. 내 솔루션 여기에 사용할 수있는 7Z 개미 작업이 때문에

<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에서
당신이 받는다는을 사용하여 우편

사용하는 것과 같은 방식으로 작동 sevenz 작업을 구현하는 방법에 대한 의견이 있습니까? 개미

<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" /> 
관련 문제