2

tar zcvf Test.tar.gz /var/trac/test /var/svn/test

これまでのところ、私は持っています:

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

デバッグをオンにすると、常に「ソースが見つかりません」と表示されるため、次に何をすべきか少し当惑しています。

4

1 に答える 1

5

ここには、うまくいかない可能性のあることがいくつかあります。

  1. ファイルまたはディレクトリ/var/trac/testですか? /var/svn/testRealtarはどちらでも問題なく機能します。あなたのタスクは、現在書かれている方法では、ファイルでのみ機能し、フォルダーでは機能しません。

  2. あなた (またはむしろ、Ant プロセス) は適切な権限を持っていますか?

  3. <include>要素にはパターンが含まれており、通常はベースディレクトリに相対的です。それらを絶対として指定しています。

上記を次のように書き直します。

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

prefixTar アーカイブ内のファイルの開始パスを明示的に指定できます。

/**within<include>は、そのフォルダーとそのすべてのサブフォルダーからすべてのファイルを取得するように Ant に指示します。/var/trac/test/var/svn/testが実際にファイルであり、フォルダーではない場合は、それを省略できます。

于 2009-09-05T18:00:28.623 に答える