2009-09-05 77 views
2

焦油zcvf Test.tar.gz的/ var/TRAC /測試的/ var/SVN /測試如何爲此tar命令構建Ant TarTask?

到目前爲止,我有:

<target name="archive" depends="init"> 
    <tar compression="gzip" destfile="test.tar.gz"> 
     <tarfileset dir="/"> 
      <include name="/var/trac/test" /> 
     </tarfileset> 
     <tarfileset dir="/"> 
      <include name="/var/trac/svn" /> 
     </tarfileset> 
    </tar> 
</target> 

調試上,它總是說 「沒有找到源」,所以我對接下來做什麼感到困惑。

回答

5

有幾件事情在這裏,可以去錯了:

  1. /var/trac/test/var/svn/test文件或目錄?真正tar將與兩個罰款;你的任務 - 它現在寫的方式 - 只能用於文件而不能用於文件夾。

  2. 你(或者說,Ant過程)是否有足夠的權限?

  3. <include>元件含有patterns,它們通常是相對於到基地目錄。你指定它們是絕對的。

我會重寫上面爲:

<target name="archive" depends="init"> 
    <tar compression="gzip" destfile="test.tar.gz"> 
    <tarfileset dir="/var/trac" prefix="/var/trac"> 
     <include name="test/**" /> 
     <include name="svn/**" /> 
    </tarfileset> 
    </tar> 
</target> 

prefix讓你explicitly specify the path與焦油存檔文件應該開始。

/**<include>之內告訴Ant從該文件夾及其所有子文件夾中獲取所有文件。如果/var/trac/test/var/svn/test確實是文件而不是文件夾,那麼你可以忽略它。

+0

我在我的示例任務中出現了一些錯誤,但是有一些錯誤(兩個tar文件集,一個用於/ var/svn/test,另一個用於/ var/trac/test),它工作得很完美。萬分感謝! – Toxygene 2009-09-05 18:28:57