Class Tar

    • Field Detail

      • WARN

        @Deprecated
        public static final java.lang.String WARN
        Deprecated.
        since 1.5.x. Tar.WARN is deprecated and is replaced with Tar.TarLongFileMode.WARN
        See Also:
        Constant Field Values
      • FAIL

        @Deprecated
        public static final java.lang.String FAIL
        Deprecated.
        since 1.5.x. Tar.FAIL is deprecated and is replaced with Tar.TarLongFileMode.FAIL
        See Also:
        Constant Field Values
      • TRUNCATE

        @Deprecated
        public static final java.lang.String TRUNCATE
        Deprecated.
        since 1.5.x. Tar.TRUNCATE is deprecated and is replaced with Tar.TarLongFileMode.TRUNCATE
        See Also:
        Constant Field Values
      • GNU

        @Deprecated
        public static final java.lang.String GNU
        Deprecated.
        since 1.5.x. Tar.GNU is deprecated and is replaced with Tar.TarLongFileMode.GNU
        See Also:
        Constant Field Values
      • OMIT

        @Deprecated
        public static final java.lang.String OMIT
        Deprecated.
        since 1.5.x. Tar.OMIT is deprecated and is replaced with Tar.TarLongFileMode.OMIT
        See Also:
        Constant Field Values
    • Constructor Detail

      • Tar

        public Tar()
    • Method Detail

      • 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.
      • add

        public void add​(ResourceCollection res)
        Add a collection of resources to archive.
        Parameters:
        res - a resource collection to archive.
        Since:
        Ant 1.7
      • setTarfile

        @Deprecated
        public void setTarfile​(java.io.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.
      • setDestFile

        public void setDestFile​(java.io.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
      • setBasedir

        public void setBasedir​(java.io.File baseDir)
        This is the base directory to look in for things to tar.
        Parameters:
        baseDir - the base directory.
      • setLongfile

        @Deprecated
        public void setLongfile​(java.lang.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

        • truncate - paths are truncated to the maximum length
        • fail - paths greater than the maximum cause a build exception
        • warn - paths greater than the maximum cause a warning and GNU is used
        • gnu - GNU extensions are used for any paths greater than the maximum.
        • omit - paths greater than the maximum are omitted from the archive
        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

        • truncate - paths are truncated to the maximum length
        • fail - paths greater than the maximum cause a build exception
        • warn - paths greater than the maximum cause a warning and GNU is used
        • gnu - extensions used by older versions of GNU tar are used for any paths greater than the maximum.
        • posix - use POSIX PAX extension headers for any paths greater than the maximum. Supported by all modern tar implementations.
        • omit - paths greater than the maximum are omitted from the archive
        Parameters:
        mode - the mode to handle long file names.
      • setCompression

        public void setCompression​(Tar.TarCompressionMethod mode)
        Set compression method. Allowable values are
        • none - no compression
        • gzip - Gzip compression
        • bzip2 - Bzip2 compression
        • xz - XZ compression, requires XZ for Java
        Parameters:
        mode - the compression method.
      • tarFile

        protected void tarFile​(java.io.File file,
                               TarOutputStream tOut,
                               java.lang.String vPath,
                               Tar.TarFileSet tarFileSet)
                        throws java.io.IOException
        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:
        java.io.IOException - on error
      • tarResource

        protected void tarResource​(Resource r,
                                   TarOutputStream tOut,
                                   java.lang.String vPath,
                                   Tar.TarFileSet tarFileSet)
                            throws java.io.IOException
        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:
        java.io.IOException - on error
        Since:
        Ant 1.7
      • archiveIsUpToDate

        @Deprecated
        protected boolean archiveIsUpToDate​(java.lang.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​(java.lang.String[] files,
                                            java.io.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
      • 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
      • 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​(java.io.File basedir,
                                java.lang.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
      • check

        protected boolean check​(java.io.File basedir,
                                java.util.Collection<java.lang.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.9.5
        See Also:
        check(File, String[])
      • tar

        protected void tar​(ResourceCollection rc,
                           TarOutputStream tOut)
                    throws java.io.IOException
        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:
        java.io.IOException - on error.
        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
      • getFileNames

        protected static java.lang.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
      • 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