在ant中运行'tar'任务时忽略特定文件的完整路径

时间:2013-03-27 19:15:17

标签: ant tar

我有这样的proj结构

 myproj
   -bin/myproj-run
   -bin/myproj-cli
   -lib/x.jar
   -target/myproj.jar

我想创建一个看起来像

的tar.gz
myproj
       -bin/myproj-run
       -bin/myproj-cli
       -lib/x.jar
       -myproj.jar

如何使用ant tar任务执行此操作?

2 个答案:

答案 0 :(得分:1)

这个应该可以工作(我已经在我的计算机上测试了它并且它可以工作):

<project name="tar.test" default="tartest">

    <dirname property="basedir" file="${ant.file.tar.test}" />

    <target name="tartest">
        <tar destfile="${basedir}/files.tar">
            <tarfileset dir="${basedir}/myproj">
                <exclude name="target/**" />
            </tarfileset>
            <tarfileset dir="${basedir}/myproj/target"/>
        </tar>
    </target>

</project>

顺便说一句,你应该阅读apache page上的tar手册,你会发现很少有例子可以帮助你。

答案 1 :(得分:0)

我首先<copy>将文件添加到您想要的文件夹结构的其他目录(例如,一个名为'package'的目录)。然后,运行<tar><gzip>

<tar destfile="myTar.tar" basedir="package" />
<gzip src="myTar.tar" destfile="myTar.tar.gz"/>