Class Jar
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classThe manifest config enumerated type.static classThe strict enumerated type.Nested classes/interfaces inherited from class org.apache.tools.ant.taskdefs.ZipZip.ArchiveState, Zip.Duplicate, Zip.UnicodeExtraField, Zip.WhenEmpty, Zip.Zip64ModeAttribute
- 
Field SummaryFields inherited from class org.apache.tools.ant.taskdefs.ZipaddedDirs, archiveType, doubleFilePass, duplicate, emptyBehavior, entries, skipWriting, zipFileFields inherited from class org.apache.tools.ant.taskdefs.MatchingTaskfilesetFields inherited from class org.apache.tools.ant.ProjectComponentdescription, location, project
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidAdd a path to index jars.voidaddConfiguredIndexJarsMapper(Mapper mapper) Add a mapper used to convert the jars to entries in the index.voidaddConfiguredManifest(Manifest newManifest) Allows the manifest for the archive file to be provided inline in the build file rather than in an external file.voidaddConfiguredService(Service service) A nested SPI service element.voidaddMetainf(ZipFileSet fs) Adds a zipfileset to include in the META-INF directory.protected voidcleanUp()Make sure we don't think we already have a MANIFEST next time this task gets executed.protected booleancreateEmptyZip(File zipFile) Create an empty jar file.protected voidFinalize the zip output stream.protected static StringfindJarName(String fileName, String[] classpath) try to guess the name of the given file.Returns the mapper used to convert the jars to entries in the index.protected Zip.ArchiveStategetResourcesToAdd(ResourceCollection[] rcs, File zipFile, boolean needsUpdate) Collect the resources that are newer than the corresponding entries (or missing) in the original archive.protected static voidGrab lists of all root-level files and all directories contained in the given archive.protected voidInitialize the zip output stream.voidreset()reset to default values.voidBehavior when a Manifest is found in a zipfileset or zipgroupfileset file.voidsetFlattenAttributes(boolean b) Whether to flatten multi-valued attributes (i.e.voidsetIndex(boolean flag) Set whether or not to create an index list for classes.voidsetIndexMetaInf(boolean flag) Set whether or not to add META-INF and its children to the index.voidsetJarfile(File jarFile) Deprecated.since 1.5.x.voidsetManifest(File manifestFile) The manifest file to use.voidsetManifestEncoding(String manifestEncoding) The character encoding to use in the manifest file.voidsetMergeClassPathAttributes(boolean b) Whether to merge Class-Path attributes.voidsetStrict(Jar.StrictMode strict) Activate the strict mode.voidNot used for jar files.voidIndicates if a jar file should be created when it would only contain a manifest file.protected final voidwriteIndexLikeList(List<String> dirs, List<String> files, PrintWriter writer) Writes the directory entries from the first and the filenames from the second list to the given writer, one entry per line.protected voidzipFile(InputStream is, ZipOutputStream zOut, String vPath, long lastModified, File fromArchive, int mode) Overridden from Zip class to deal with manifests and index lists.Methods inherited from class org.apache.tools.ant.taskdefs.Zipadd, addFileset, addParentDirs, addResources, addResources, addZipfileset, addZipGroupFileset, execute, executeMain, getComment, getCreateUnicodeExtraFields, getCurrentExtraFields, getDestFile, getEncoding, getFallBackToUTF8, getLevel, getModificationtime, getNonFileSetResourcesToAdd, getPreserve0Permissions, getResourcesToAdd, getUseLanguageEnodingFlag, getZip64Mode, grabNonFileSetResources, grabResources, hasUpdatedFile, isAddingNewFiles, isCompress, isEmpty, isFirstPass, isInUpdateMode, logWhenWriting, selectDirectoryResources, selectFileResources, selectResources, setBasedir, setComment, setCompress, setCreateUnicodeExtraFields, setCurrentExtraFields, setDestFile, setDuplicate, setEncoding, setFallBackToUTF8, setFile, setFilesonly, setKeepCompression, setLevel, setModificationtime, setPreserve0Permissions, setRoundUp, setUpdate, setUseLanguageEncodingFlag, setZip64Mode, setZipfile, zipDir, zipDir, zipDir, zipFile, zipFileMethods inherited from class org.apache.tools.ant.taskdefs.MatchingTaskadd, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItemsMethods inherited from class org.apache.tools.ant.TaskbindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskTypeMethods inherited from class org.apache.tools.ant.ProjectComponentclone, getDescription, getLocation, getProject, setDescription, setLocation
- 
Constructor Details- 
Jarpublic Jar()constructor
 
- 
- 
Method Details- 
setWhenemptyNot used for jar files.- Overrides:
- setWhenemptyin class- Zip
- Parameters:
- we- not used
 
- 
setWhenmanifestonlyIndicates if a jar file should be created when it would only contain a manifest file. Possible values are:fail(throw an exception and halt the build);skip(do not create any archive, but issue a warning);create(make an archive with only a manifest file). Default iscreate;- Parameters:
- we- a- WhenEmptyenumerated value
 
- 
setStrictActivate the strict mode. When set to true a BuildException will be thrown if the Jar-Packaging specification was broken.- Parameters:
- strict- New value of the strict mode.
- Since:
- Ant 1.7.1
 
- 
setJarfileDeprecated.since 1.5.x. Use setDestFile(File) instead.Set the destination file.- Parameters:
- jarFile- the destination file
 
- 
setIndexpublic void setIndex(boolean flag) Set whether or not to create an index list for classes. This may speed up classloading in some cases.- Parameters:
- flag- a- booleanvalue
 
- 
setIndexMetaInfpublic void setIndexMetaInf(boolean flag) Set whether or not to add META-INF and its children to the index.Doesn't have any effect if index is false. Sun's jar implementation used to skip the META-INF directory and Ant followed that example. The behavior has been changed with Java 5. In order to avoid problems with Ant generated jars on Java 1.4 or earlier Ant will not include META-INF unless explicitly asked to. - Parameters:
- flag- a- booleanvalue, defaults to false
- Since:
- Ant 1.8.0
- See Also:
 
- 
setManifestEncodingThe character encoding to use in the manifest file.- Parameters:
- manifestEncoding- the character encoding
 
- 
addConfiguredManifestAllows the manifest for the archive file to be provided inline in the build file rather than in an external file.- Parameters:
- newManifest- an embedded manifest element
- Throws:
- ManifestException- on error
 
- 
setManifestThe manifest file to use. This can be either the location of a manifest, or the name of a jar added through a fileset. If its the name of an added jar, the task expects the manifest to be in the jar at META-INF/MANIFEST.MF.- Parameters:
- manifestFile- the manifest file to use.
 
- 
setFilesetmanifestBehavior when a Manifest is found in a zipfileset or zipgroupfileset file. Valid values are "skip", "merge", and "mergewithoutmain". "merge" will merge all of manifests together, and merge this into any other specified manifests. "mergewithoutmain" merges everything but the Main section of the manifests. Default value is "skip". Note: if this attribute's value is not "skip", the created jar will not be readable by using java.util.jar.JarInputStream- Parameters:
- config- setting for found manifest behavior.
 
- 
addMetainfAdds a zipfileset to include in the META-INF directory.- Parameters:
- fs- zipfileset to add
 
- 
addConfiguredIndexJarsAdd a path to index jars.- Parameters:
- p- a path
- Since:
- Ant 1.6.2
 
- 
addConfiguredIndexJarsMapperAdd a mapper used to convert the jars to entries in the index.- Parameters:
- mapper- a mapper
- Since:
- Ant 1.10.9
 
- 
getIndexJarsMapperReturns the mapper used to convert the jars to entries in the index. May be null.- Since:
- Ant 1.10.9
 
- 
addConfiguredServiceA nested SPI service element.- Parameters:
- service- the nested element.
- Since:
- Ant 1.7
 
- 
setMergeClassPathAttributespublic void setMergeClassPathAttributes(boolean b) Whether to merge Class-Path attributes.- Parameters:
- b- boolean
- Since:
- Ant 1.8.0
 
- 
setFlattenAttributespublic void setFlattenAttributes(boolean b) Whether to flatten multi-valued attributes (i.e. Class-Path) into a single one.- Parameters:
- b- boolean
- Since:
- Ant 1.8.0
 
- 
initZipOutputStreamInitialize the zip output stream.- Overrides:
- initZipOutputStreamin class- Zip
- Parameters:
- zOut- the zip output stream
- Throws:
- IOException- on I/O errors
- BuildException- on other errors
 
- 
finalizeZipOutputStreamFinalize the zip output stream. This creates an index list if the index attribute is true.- Overrides:
- finalizeZipOutputStreamin class- Zip
- Parameters:
- zOut- the zip output stream
- Throws:
- IOException- on I/O errors
- BuildException- on other errors
 
- 
zipFileprotected void zipFile(InputStream is, ZipOutputStream zOut, String vPath, long lastModified, File fromArchive, int mode) throws IOException Overridden from Zip class to deal with manifests and index lists.- Overrides:
- zipFilein class- Zip
- Parameters:
- is- the stream to read data for the entry from. The caller of the method is responsible for closing the stream.
- zOut- the zip output stream
- vPath- the name this entry shall have in the archive
- lastModified- last modification time for the entry.
- fromArchive- the original archive we are copying this entry from, will be null if we are not copying from an archive.
- mode- the Unix permissions to set.
- Throws:
- IOException- on error
 
- 
getResourcesToAddprotected Zip.ArchiveState getResourcesToAdd(ResourceCollection[] rcs, File zipFile, boolean needsUpdate) throws BuildException Collect the resources that are newer than the corresponding entries (or missing) in the original archive.If we are going to recreate the archive instead of updating it, all resources should be considered as new, if a single one is. Because of this, subclasses overriding this method must call super.getResourcesToAddand indicate with the third arg if they already know that the archive is out-of-date.- Overrides:
- getResourcesToAddin class- Zip
- Parameters:
- rcs- The resource collections to grab resources from
- zipFile- intended archive file (may or may not exist)
- needsUpdate- whether we already know that the archive is out-of-date. Subclasses overriding this method are supposed to set this value correctly in their call to super.getResourcesToAdd.
- Returns:
- an array of resources to add for each fileset passed in as well as a flag that indicates whether the archive is uptodate.
- Throws:
- BuildException- if it likes
 
- 
createEmptyZipCreate an empty jar file.- Overrides:
- createEmptyZipin class- Zip
- Parameters:
- zipFile- the file to create
- Returns:
- true for historic reasons
- Throws:
- BuildException- on error
 
- 
cleanUp
- 
reset
- 
writeIndexLikeListWrites the directory entries from the first and the filenames from the second list to the given writer, one entry per line.- Parameters:
- dirs- a list of directories
- files- a list of files
- writer- the writer to write to
- Since:
- Ant 1.6.2
 
- 
findJarNametry to guess the name of the given file.If this jar has a classpath attribute in its manifest, we can assume that it will only require an index of jars listed there. try to find which classpath entry is most likely the one the given file name points to. In the absence of a classpath attribute, assume the other files will be placed inside the same directory as this jar and use their basename. if there is a classpath and the given file doesn't match any of its entries, return null. - Parameters:
- fileName- the name to look for
- classpath- the classpath to look in (may be null)
- Returns:
- the matching entry, or null if the file is not found
- Since:
- Ant 1.6.2
 
- 
grabFilesAndDirsprotected static void grabFilesAndDirs(String file, List<String> dirs, List<String> files) throws IOException Grab lists of all root-level files and all directories contained in the given archive.- Parameters:
- file- the zip file to examine
- dirs- where to place the directories found
- files- where to place the files found
- Throws:
- IOException- on error
- Since:
- Ant 1.7
 
 
-