org.apache.tools.ant.taskdefs

Class Tar

public class Tar extends MatchingTask

Creates a tar archive.

Since: Ant 1.1

UNKNOWN: category="packaging"

Nested Class Summary
static classTar.TarCompressionMethod
Valid Modes for Compression attribute to Tar Task
static classTar.TarFileSet
This is a FileSet with the option to specify permissions and other attributes.
static classTar.TarLongFileMode
Set of options for long file handling in the task.
Field Summary
static StringFAIL
static StringGNU
static StringOMIT
static StringTRUNCATE
static StringWARN
Method Summary
voidadd(ResourceCollection res)
Add a collection of resources to archive.
protected booleanarchiveIsUpToDate(String[] files)
Is the archive up to date in relationship to a list of files.
protected booleanarchiveIsUpToDate(String[] files, File dir)
Is the archive up to date in relationship to a list of files.
protected booleanarchiveIsUpToDate(Resource r)
Is the archive up to date in relationship to a list of files.
protected Tar.TarFileSetasTarFileSet(ArchiveFileSet archiveFileSet)
Copies fullpath, prefix and permission attributes from the ArchiveFileSet to a new TarFileSet (or returns it unchanged if it already is a TarFileSet).
protected booleancheck(ResourceCollection rc)
Checks whether the archive is out-of-date with respect to the resources of the given collection.
protected booleancheck(File basedir, String[] files)
Checks whether the archive is out-of-date with respect to the given files, ensures that the archive won't contain itself.

Tar.TarFileSetcreateTarFileSet()
Add a new fileset with the option to specify permissions
voidexecute()
do the business
protected static String[]getFileNames(FileSet fs)
Grabs all included files and directors from the FileSet and returns them as an array of (relative) file names.
protected static booleanisFileFileSet(ResourceCollection rc)
whether the given resource collection is a (subclass of) FileSet that only contains file system resources.
voidsetBasedir(File baseDir)
This is the base directory to look in for things to tar.
voidsetCompression(Tar.TarCompressionMethod mode)
Set compression method.
voidsetDestFile(File destFile)
Set is the name/location of where to create the tar file.
voidsetLongfile(String mode)
Set how to handle long files, those with a path>100 chars.
voidsetLongfile(Tar.TarLongFileMode mode)
Set how to handle long files, those with a path>100 chars.
voidsetTarfile(File tarFile)
Set is the name/location of where to create the tar file.
protected booleansupportsNonFileResources()
Whether this task can deal with non-file resources.
protected voidtar(ResourceCollection rc, TarOutputStream tOut)
Adds the resources contained in this collection to the archive.
protected voidtarFile(File file, TarOutputStream tOut, String vPath, Tar.TarFileSet tarFileSet)
tar a file
protected voidtarResource(Resource r, TarOutputStream tOut, String vPath, Tar.TarFileSet tarFileSet)
tar a resource

Field Detail

FAIL

public static final String FAIL

Deprecated: since 1.5.x. Tar.FAIL is deprecated and is replaced with Tar.TarLongFileMode.FAIL

GNU

public static final String GNU

Deprecated: since 1.5.x. Tar.GNU is deprecated and is replaced with Tar.TarLongFileMode.GNU

OMIT

public static final String OMIT

Deprecated: since 1.5.x. Tar.OMIT is deprecated and is replaced with Tar.TarLongFileMode.OMIT

TRUNCATE

public static final String TRUNCATE

Deprecated: since 1.5.x. Tar.TRUNCATE is deprecated and is replaced with Tar.TarLongFileMode.TRUNCATE

WARN

public static final String WARN

Deprecated: since 1.5.x. Tar.WARN is deprecated and is replaced with Tar.TarLongFileMode.WARN

Method Detail

add

public void add(ResourceCollection res)
Add a collection of resources to archive.

Parameters: res a resource collection to archive.

Since: Ant 1.7

archiveIsUpToDate

protected boolean archiveIsUpToDate(String[] files)

Deprecated: since 1.5.x. use the two-arg version instead.

Is the archive up to date in relationship to a list of files.

Parameters: files the files to check

Returns: true if the archive is up to date.

archiveIsUpToDate

protected boolean archiveIsUpToDate(String[] files, File dir)
Is the archive up to date in relationship to a list of files.

Parameters: files the files to check dir the base directory for the files.

Returns: true if the archive is up to date.

Since: Ant 1.5.2

archiveIsUpToDate

protected boolean archiveIsUpToDate(Resource r)
Is the archive up to date in relationship to a list of files.

Parameters: r the files to check

Returns: true if the archive is up to date.

Since: Ant 1.7

asTarFileSet

protected Tar.TarFileSet asTarFileSet(ArchiveFileSet archiveFileSet)
Copies fullpath, prefix and permission attributes from the ArchiveFileSet to a new TarFileSet (or returns it unchanged if it already is a TarFileSet).

Parameters: archiveFileSet fileset to copy attributes from, may be null

Returns: a new TarFileSet.

Since: Ant 1.7

check

protected boolean check(ResourceCollection rc)
Checks whether the archive is out-of-date with respect to the resources of the given collection.

Also checks that either all collections only contain file resources or this class supports non-file collections.

And - in case of file-collections - ensures that the archive won't contain itself.

Parameters: rc the resource collection to check

Returns: whether the archive is up-to-date

Since: Ant 1.7

check

protected boolean check(File basedir, String[] files)
Checks whether the archive is out-of-date with respect to the given files, ensures that the archive won't contain itself.

Parameters: basedir base directory for file names files array of relative file names

Returns: whether the archive is up-to-date

Since: Ant 1.7

createTarFileSet

public Tar.TarFileSet createTarFileSet()
Add a new fileset with the option to specify permissions

Returns: the tar fileset to be used as the nested element.

execute

public void execute()
do the business

Throws: BuildException on error

getFileNames

protected static String[] getFileNames(FileSet fs)
Grabs all included files and directors from the FileSet and returns them as an array of (relative) file names.

Parameters: fs the fileset to operate on.

Returns: a list of the filenames.

Since: Ant 1.7

isFileFileSet

protected static boolean isFileFileSet(ResourceCollection rc)
whether the given resource collection is a (subclass of) FileSet that only contains file system resources.

Parameters: rc the resource collection to check.

Returns: true if the collection is a fileset.

Since: Ant 1.7

setBasedir

public void setBasedir(File baseDir)
This is the base directory to look in for things to tar.

Parameters: baseDir the base directory.

setCompression

public void setCompression(Tar.TarCompressionMethod mode)
Set compression method. Allowable values are

Parameters: mode the compression method.

setDestFile

public void setDestFile(File destFile)
Set is the name/location of where to create the tar file.

Parameters: destFile The output of the tar

Since: Ant 1.5

setLongfile

public void setLongfile(String mode)

Deprecated: since 1.5.x. setLongFile(String) is deprecated and is replaced with setLongFile(Tar.TarLongFileMode) to make Ant's Introspection mechanism do the work and also to encapsulate operations on the mode in its own class.

Set how to handle long files, those with a path>100 chars. Optional, default=warn.

Allowable values are

Parameters: mode the mode string to handle long files.

setLongfile

public void setLongfile(Tar.TarLongFileMode mode)
Set how to handle long files, those with a path>100 chars. Optional, default=warn.

Allowable values are

Parameters: mode the mode to handle long file names.

setTarfile

public void setTarfile(File tarFile)

Deprecated: since 1.5.x. For consistency with other tasks, please use setDestFile().

Set is the name/location of where to create the tar file.

Parameters: tarFile the location of the tar file.

supportsNonFileResources

protected boolean supportsNonFileResources()
Whether this task can deal with non-file resources.

This implementation returns true only if this task is <tar>. Any subclass of this class that also wants to support non-file resources needs to override this method. We need to do so for backwards compatibility reasons since we can't expect subclasses to support resources.

Returns: true for this task.

Since: Ant 1.7

tar

protected void tar(ResourceCollection rc, TarOutputStream tOut)
Adds the resources contained in this collection to the archive.

Uses the file based methods for file resources for backwards compatibility.

Parameters: rc the collection containing resources to add tOut stream writing to the archive.

Throws: IOException on error.

Since: Ant 1.7

tarFile

protected void tarFile(File file, TarOutputStream tOut, String vPath, Tar.TarFileSet tarFileSet)
tar a file

Parameters: file the file to tar tOut the output stream vPath the path name of the file to tar tarFileSet the fileset that the file came from.

Throws: IOException on error

tarResource

protected void tarResource(Resource r, TarOutputStream tOut, String vPath, Tar.TarFileSet tarFileSet)
tar a resource

Parameters: r the resource to tar tOut the output stream vPath the path name of the file to tar tarFileSet the fileset that the file came from, may be null.

Throws: IOException on error

Since: Ant 1.7