2009-09-05 5 views
2

goudron zcf Test.tar.gz/var/trac/test/var/svn/testComment créer une TarTask Ant pour cette commande tar?

Jusqu'à présent, j'ai:

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

Avec le débogage sur, il dit toujours "Aucune source trouvée" si Je suis un peu perplexe sur ce qu'il faut faire ensuite.

Répondre

5

Il y a plusieurs choses ici qui peut aller mal:

  1. sont-/var/trac/test et /var/svn/test fichiers ou répertoires? Real tar fonctionnerait bien avec les deux; Votre tâche, telle qu'elle est actuellement définie, ne fonctionnerait qu'avec des fichiers mais pas des dossiers.

  2. Est-ce que vous (ou, plutôt, le processus Ant) avez-vous les permissions adéquates?

  3. <include> éléments contiennent patterns, qui sont généralement par rapport à la base dir. Vous les spécifiez comme absolus.

Je réécrivaient ci-dessus comme:

<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 vous permet de explicitly specify the path avec les fichiers dans l'archive Tar devrait commencer.

/** au sein de <include> indique à Ant de prendre tous les fichiers de ce dossier et tous ses sous-dossiers. Si /var/trac/test et /var/svn/test sont en effet des fichiers et non des dossiers, vous pouvez omettre cela.

+0

J'ai eu quelques erreurs dans mon exemple, mais avec une petite quantité de finagling (deux tarfilesets, un pour/var/svn/test et un pour/var/trac/test), cela a fonctionné parfaitement. Merci beaucoup! – Toxygene

Questions connexes