org.apache.maven.plugin.assembly.model.Assembly Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of maven-assembly-plugin Show documentation
Show all versions of maven-assembly-plugin Show documentation
A Maven plugin to create archives of your project's sources, classes, dependencies etc. from flexible assembly descriptors.
/*
* $Id$
*/
package org.apache.maven.plugin.assembly.model;
//---------------------------------/
//- Imported classes and packages -/
//---------------------------------/
import java.util.Date;
/**
*
*
* An assembly defines a collection of files usually
* distributed in an
* archive format such as zip, tar, or tar.gz that is
* generated from a
* project. For example, a project could produce a ZIP
* assembly which
* contains a project's JAR artifact in the root directory,
* the
* runtime dependencies in a lib/ directory, and a shell
* script to launch
* a stand-alone application.
*
*
*
* @version $Revision$ $Date$
*/
public class Assembly implements java.io.Serializable {
//--------------------------/
//- Class/Member Variables -/
//--------------------------/
/**
*
* Sets the id of this assembly. This is a symbolic
* name for a
* particular assembly of files from this project.
* Also, aside from
* being used to distinctly name the assembled
* package by attaching
* its value to the generated archive, the id is
* used as your
* artifact's classifier when deploying.
*
*/
private String id;
/**
* Field formats.
*/
private java.util.List formats;
/**
*
* Includes a base directory in the final archive.
* For example,
* if you are creating an assembly named
* "your-app", setting
* includeBaseDirectory to true will create an
* archive that
* includes this base directory. If this option is
* set to false
* the archive created will unzip its content to
* the current
* directory. Default value is true.
*
*/
private boolean includeBaseDirectory = true;
/**
*
* Sets the base directory of the resulting
* assembly archive. If this is not
* set and includeBaseDirectory == true,
* ${project.build.finalName} will be used instead.
* (Since 2.2)
* .
*/
private String baseDirectory;
/**
*
* Includes a site directory in the final archive.
* The site directory
* location of a project is determined by the
* siteDirectory parameter
* of the Assembly Plugin. Default value is false.
*
*/
private boolean includeSiteDirectory = false;
/**
* Field containerDescriptorHandlers.
*/
private java.util.List containerDescriptorHandlers;
/**
* Field moduleSets.
*/
private java.util.List moduleSets;
/**
* Field fileSets.
*/
private java.util.List fileSets;
/**
* Field files.
*/
private java.util.List files;
/**
* Field dependencySets.
*/
private java.util.List dependencySets;
/**
* Field repositories.
*/
private java.util.List repositories;
/**
* Field componentDescriptors.
*/
private java.util.List componentDescriptors;
//-----------/
//- Methods -/
//-----------/
/**
* Method addComponentDescriptor.
*
* @param string
*/
public void addComponentDescriptor(String string)
{
if ( !(string instanceof String) )
{
throw new ClassCastException( "Assembly.addComponentDescriptors(string) parameter must be instanceof " + String.class.getName() );
}
getComponentDescriptors().add( string );
} //-- void addComponentDescriptor(String)
/**
* Method addContainerDescriptorHandler.
*
* @param containerDescriptorHandlerConfig
*/
public void addContainerDescriptorHandler(ContainerDescriptorHandlerConfig containerDescriptorHandlerConfig)
{
if ( !(containerDescriptorHandlerConfig instanceof ContainerDescriptorHandlerConfig) )
{
throw new ClassCastException( "Assembly.addContainerDescriptorHandlers(containerDescriptorHandlerConfig) parameter must be instanceof " + ContainerDescriptorHandlerConfig.class.getName() );
}
getContainerDescriptorHandlers().add( containerDescriptorHandlerConfig );
} //-- void addContainerDescriptorHandler(ContainerDescriptorHandlerConfig)
/**
* Method addDependencySet.
*
* @param dependencySet
*/
public void addDependencySet(DependencySet dependencySet)
{
if ( !(dependencySet instanceof DependencySet) )
{
throw new ClassCastException( "Assembly.addDependencySets(dependencySet) parameter must be instanceof " + DependencySet.class.getName() );
}
getDependencySets().add( dependencySet );
} //-- void addDependencySet(DependencySet)
/**
* Method addFile.
*
* @param fileItem
*/
public void addFile(FileItem fileItem)
{
if ( !(fileItem instanceof FileItem) )
{
throw new ClassCastException( "Assembly.addFiles(fileItem) parameter must be instanceof " + FileItem.class.getName() );
}
getFiles().add( fileItem );
} //-- void addFile(FileItem)
/**
* Method addFileSet.
*
* @param fileSet
*/
public void addFileSet(FileSet fileSet)
{
if ( !(fileSet instanceof FileSet) )
{
throw new ClassCastException( "Assembly.addFileSets(fileSet) parameter must be instanceof " + FileSet.class.getName() );
}
getFileSets().add( fileSet );
} //-- void addFileSet(FileSet)
/**
* Method addFormat.
*
* @param string
*/
public void addFormat(String string)
{
if ( !(string instanceof String) )
{
throw new ClassCastException( "Assembly.addFormats(string) parameter must be instanceof " + String.class.getName() );
}
getFormats().add( string );
} //-- void addFormat(String)
/**
* Method addModuleSet.
*
* @param moduleSet
*/
public void addModuleSet(ModuleSet moduleSet)
{
if ( !(moduleSet instanceof ModuleSet) )
{
throw new ClassCastException( "Assembly.addModuleSets(moduleSet) parameter must be instanceof " + ModuleSet.class.getName() );
}
getModuleSets().add( moduleSet );
} //-- void addModuleSet(ModuleSet)
/**
* Method addRepository.
*
* @param repository
*/
public void addRepository(Repository repository)
{
if ( !(repository instanceof Repository) )
{
throw new ClassCastException( "Assembly.addRepositories(repository) parameter must be instanceof " + Repository.class.getName() );
}
getRepositories().add( repository );
} //-- void addRepository(Repository)
/**
* Get
* Sets the base directory of the resulting
* assembly archive. If this is not
* set and includeBaseDirectory == true,
* ${project.build.finalName} will be used instead.
* (Since 2.2)
* .
*
* @return String
*/
public String getBaseDirectory()
{
return this.baseDirectory;
} //-- String getBaseDirectory()
/**
* Method getComponentDescriptors.
*
* @return java.util.List
*/
public java.util.List getComponentDescriptors()
{
if ( this.componentDescriptors == null )
{
this.componentDescriptors = new java.util.ArrayList();
}
return this.componentDescriptors;
} //-- java.util.List getComponentDescriptors()
/**
* Method getContainerDescriptorHandlers.
*
* @return java.util.List
*/
public java.util.List getContainerDescriptorHandlers()
{
if ( this.containerDescriptorHandlers == null )
{
this.containerDescriptorHandlers = new java.util.ArrayList();
}
return this.containerDescriptorHandlers;
} //-- java.util.List getContainerDescriptorHandlers()
/**
* Method getDependencySets.
*
* @return java.util.List
*/
public java.util.List getDependencySets()
{
if ( this.dependencySets == null )
{
this.dependencySets = new java.util.ArrayList();
}
return this.dependencySets;
} //-- java.util.List getDependencySets()
/**
* Method getFileSets.
*
* @return java.util.List
*/
public java.util.List getFileSets()
{
if ( this.fileSets == null )
{
this.fileSets = new java.util.ArrayList();
}
return this.fileSets;
} //-- java.util.List getFileSets()
/**
* Method getFiles.
*
* @return java.util.List
*/
public java.util.List getFiles()
{
if ( this.files == null )
{
this.files = new java.util.ArrayList();
}
return this.files;
} //-- java.util.List getFiles()
/**
* Method getFormats.
*
* @return java.util.List
*/
public java.util.List getFormats()
{
if ( this.formats == null )
{
this.formats = new java.util.ArrayList();
}
return this.formats;
} //-- java.util.List getFormats()
/**
* Get
* Sets the id of this assembly. This is a symbolic
* name for a
* particular assembly of files from this project.
* Also, aside from
* being used to distinctly name the assembled
* package by attaching
* its value to the generated archive, the id is
* used as your
* artifact's classifier when deploying.
*
*
* @return String
*/
public String getId()
{
return this.id;
} //-- String getId()
/**
* Method getModuleSets.
*
* @return java.util.List
*/
public java.util.List getModuleSets()
{
if ( this.moduleSets == null )
{
this.moduleSets = new java.util.ArrayList();
}
return this.moduleSets;
} //-- java.util.List getModuleSets()
/**
* Method getRepositories.
*
* @return java.util.List
*/
public java.util.List getRepositories()
{
if ( this.repositories == null )
{
this.repositories = new java.util.ArrayList();
}
return this.repositories;
} //-- java.util.List getRepositories()
/**
* Get
* Includes a base directory in the final archive.
* For example,
* if you are creating an assembly named
* "your-app", setting
* includeBaseDirectory to true will create an
* archive that
* includes this base directory. If this option is
* set to false
* the archive created will unzip its content to
* the current
* directory. Default value is true.
*
*
* @return boolean
*/
public boolean isIncludeBaseDirectory()
{
return this.includeBaseDirectory;
} //-- boolean isIncludeBaseDirectory()
/**
* Get
* Includes a site directory in the final archive.
* The site directory
* location of a project is determined by the
* siteDirectory parameter
* of the Assembly Plugin. Default value is false.
*
*
* @return boolean
*/
public boolean isIncludeSiteDirectory()
{
return this.includeSiteDirectory;
} //-- boolean isIncludeSiteDirectory()
/**
* Method removeComponentDescriptor.
*
* @param string
*/
public void removeComponentDescriptor(String string)
{
if ( !(string instanceof String) )
{
throw new ClassCastException( "Assembly.removeComponentDescriptors(string) parameter must be instanceof " + String.class.getName() );
}
getComponentDescriptors().remove( string );
} //-- void removeComponentDescriptor(String)
/**
* Method removeContainerDescriptorHandler.
*
* @param containerDescriptorHandlerConfig
*/
public void removeContainerDescriptorHandler(ContainerDescriptorHandlerConfig containerDescriptorHandlerConfig)
{
if ( !(containerDescriptorHandlerConfig instanceof ContainerDescriptorHandlerConfig) )
{
throw new ClassCastException( "Assembly.removeContainerDescriptorHandlers(containerDescriptorHandlerConfig) parameter must be instanceof " + ContainerDescriptorHandlerConfig.class.getName() );
}
getContainerDescriptorHandlers().remove( containerDescriptorHandlerConfig );
} //-- void removeContainerDescriptorHandler(ContainerDescriptorHandlerConfig)
/**
* Method removeDependencySet.
*
* @param dependencySet
*/
public void removeDependencySet(DependencySet dependencySet)
{
if ( !(dependencySet instanceof DependencySet) )
{
throw new ClassCastException( "Assembly.removeDependencySets(dependencySet) parameter must be instanceof " + DependencySet.class.getName() );
}
getDependencySets().remove( dependencySet );
} //-- void removeDependencySet(DependencySet)
/**
* Method removeFile.
*
* @param fileItem
*/
public void removeFile(FileItem fileItem)
{
if ( !(fileItem instanceof FileItem) )
{
throw new ClassCastException( "Assembly.removeFiles(fileItem) parameter must be instanceof " + FileItem.class.getName() );
}
getFiles().remove( fileItem );
} //-- void removeFile(FileItem)
/**
* Method removeFileSet.
*
* @param fileSet
*/
public void removeFileSet(FileSet fileSet)
{
if ( !(fileSet instanceof FileSet) )
{
throw new ClassCastException( "Assembly.removeFileSets(fileSet) parameter must be instanceof " + FileSet.class.getName() );
}
getFileSets().remove( fileSet );
} //-- void removeFileSet(FileSet)
/**
* Method removeFormat.
*
* @param string
*/
public void removeFormat(String string)
{
if ( !(string instanceof String) )
{
throw new ClassCastException( "Assembly.removeFormats(string) parameter must be instanceof " + String.class.getName() );
}
getFormats().remove( string );
} //-- void removeFormat(String)
/**
* Method removeModuleSet.
*
* @param moduleSet
*/
public void removeModuleSet(ModuleSet moduleSet)
{
if ( !(moduleSet instanceof ModuleSet) )
{
throw new ClassCastException( "Assembly.removeModuleSets(moduleSet) parameter must be instanceof " + ModuleSet.class.getName() );
}
getModuleSets().remove( moduleSet );
} //-- void removeModuleSet(ModuleSet)
/**
* Method removeRepository.
*
* @param repository
*/
public void removeRepository(Repository repository)
{
if ( !(repository instanceof Repository) )
{
throw new ClassCastException( "Assembly.removeRepositories(repository) parameter must be instanceof " + Repository.class.getName() );
}
getRepositories().remove( repository );
} //-- void removeRepository(Repository)
/**
* Set
* Sets the base directory of the resulting
* assembly archive. If this is not
* set and includeBaseDirectory == true,
* ${project.build.finalName} will be used instead.
* (Since 2.2)
* .
*
* @param baseDirectory
*/
public void setBaseDirectory(String baseDirectory)
{
this.baseDirectory = baseDirectory;
} //-- void setBaseDirectory(String)
/**
* Set
*
* Specifies the shared components xml file
* locations to include in the
* assembly. The locations specified must be
* relative to the basedir of
* the project. When multiple componentDescriptors
* are found, their
* contents are merged. Check out the
* descriptor components for more information.
* A
* componentDescriptor is specified by providing
* one or more of
* <componentDescriptor> subelements.
*
*
*
* @param componentDescriptors
*/
public void setComponentDescriptors(java.util.List componentDescriptors)
{
this.componentDescriptors = componentDescriptors;
} //-- void setComponentDescriptors(java.util.List)
/**
* Set
*
* Set of components which filter various container
* descriptors out of
* the normal archive stream, so they can be
* aggregated then added.
*
*
*
* @param containerDescriptorHandlers
*/
public void setContainerDescriptorHandlers(java.util.List containerDescriptorHandlers)
{
this.containerDescriptorHandlers = containerDescriptorHandlers;
} //-- void setContainerDescriptorHandlers(java.util.List)
/**
* Set
*
* Specifies which dependencies to include in the
* assembly. A
* dependencySet is specified by providing one or
* more of
* <dependencySet> subelements.
*
*
*
* @param dependencySets
*/
public void setDependencySets(java.util.List dependencySets)
{
this.dependencySets = dependencySets;
} //-- void setDependencySets(java.util.List)
/**
* Set
*
* Specifies which groups of files to include in
* the assembly. A
* fileSet is specified by providing one or more of
* <fileSet>
* subelements.
*
*
*
* @param fileSets
*/
public void setFileSets(java.util.List fileSets)
{
this.fileSets = fileSets;
} //-- void setFileSets(java.util.List)
/**
* Set
*
* Specifies which single files to include in the
* assembly. A file
* is specified by providing one or more of
* <file>
* subelements.
*
*
*
* @param files
*/
public void setFiles(java.util.List files)
{
this.files = files;
} //-- void setFiles(java.util.List)
/**
* Set
*
* Specifies the formats of the assembly. Multiple
* formats can be
* supplied and the Assembly Plugin will generate
* an archive for each
* desired formats. When deploying your project,
* all file formats
* specified will also be deployed. A format is
* specified by supplying
* one of the following values in a <format>
* subelement:
*
* - "zip" - Creates a ZIP file
* format
* - "gz" - Creates a GZIP format
* - "tar" - Creates a TAR format
* - "tar.gz" - Creates a gzip'd TAR
* format
* - "tar.bz2" - Creates a bzip'd TAR
* format
*
*
*
*
* @param formats
*/
public void setFormats(java.util.List formats)
{
this.formats = formats;
} //-- void setFormats(java.util.List)
/**
* Set
* Sets the id of this assembly. This is a symbolic
* name for a
* particular assembly of files from this project.
* Also, aside from
* being used to distinctly name the assembled
* package by attaching
* its value to the generated archive, the id is
* used as your
* artifact's classifier when deploying.
*
*
* @param id
*/
public void setId(String id)
{
this.id = id;
} //-- void setId(String)
/**
* Set
* Includes a base directory in the final archive.
* For example,
* if you are creating an assembly named
* "your-app", setting
* includeBaseDirectory to true will create an
* archive that
* includes this base directory. If this option is
* set to false
* the archive created will unzip its content to
* the current
* directory. Default value is true.
*
*
* @param includeBaseDirectory
*/
public void setIncludeBaseDirectory(boolean includeBaseDirectory)
{
this.includeBaseDirectory = includeBaseDirectory;
} //-- void setIncludeBaseDirectory(boolean)
/**
* Set
* Includes a site directory in the final archive.
* The site directory
* location of a project is determined by the
* siteDirectory parameter
* of the Assembly Plugin. Default value is false.
*
*
* @param includeSiteDirectory
*/
public void setIncludeSiteDirectory(boolean includeSiteDirectory)
{
this.includeSiteDirectory = includeSiteDirectory;
} //-- void setIncludeSiteDirectory(boolean)
/**
* Set
*
* Specifies which module files to include in the
* assembly. A moduleSet
* is specified by providing one or more of
* <moduleSet>
* subelements.
*
*
*
* @param moduleSets
*/
public void setModuleSets(java.util.List moduleSets)
{
this.moduleSets = moduleSets;
} //-- void setModuleSets(java.util.List)
/**
* Set
*
* Specifies which repository files to include in
* the assembly. A
* repository is specified by providing one or more
* of
* <repository> subelements.
*
*
*
* @param repositories
*/
public void setRepositories(java.util.List repositories)
{
this.repositories = repositories;
} //-- void setRepositories(java.util.List)
private String modelEncoding = "UTF-8";
/**
* Set an encoding used for reading/writing the model.
*
* @param modelEncoding the encoding used when reading/writing the model.
*/
public void setModelEncoding( String modelEncoding )
{
this.modelEncoding = modelEncoding;
}
/**
* @return the current encoding used when reading/writing this model.
*/
public String getModelEncoding()
{
return modelEncoding;
}
}