maven Maven Maven's model for Java project. org.apache.maven.model Model Model 3.0.0+ extend 3.0.0+ The location of the parent project, if one exists. Values from the parent project will be the default for this project if they are left unspecified. The path may be absolute, or relative to the current project.xml file. String parent 4.0.0 Specified which project to extend. Parent modelVersion 4.0.0 true The version of this model you are using. String pomVersion 3.0.0 true String id 3.0.0 true The id of the project. String groupId 3.0.0+ true The primary grouping for your project. String artifactId 3.0.0+ true The identifier used when generating the artifact for your project. String type 4.0.0 The type of artifact this project produces. String jar name 3.0.0+ true Human readable name of the project. String currentVersion 3.0.0 true String version 4.0.0 true The current version of the project. String shortDescription 3.0.0+ An abbreviated description of the project. String description 3.0.0+ A detailed description of the project. This element is usually specified as CDATA to enable the use of HTML tags within the description. This description is used to generate the front page of the project's web site. String url 3.0.0+ The URL where the project can be found. String logo 3.0.0+ The logo for the project. String issueTrackingUrl 3.0.0 The URL where the issue tracking system used by the project can be found. String issueManagement 4.0.0 The project's issue management information. IssueManagement ciManagement 4.0.0 The project's continuous integration management information. CiManagement inceptionYear 3.0.0+ true The year the project started. String gumpRepositoryId 3.0.0 Hint for the gump continuous integration build system. String siteAddress 3.0.0 The FQDN of the host where the project's site is uploaded. String siteDirectory 3.0.0 The directory on the site host where site documentation is placed when the site is uploaded. String distributionSite 3.0.0 The FQDN of the host where the project's artifacts are uploaded. String This naming is inconsistent and distribution should occur from a repository structure. distributionDirectory 3.0.0 The directory on the distribution host where artifacts are placed when uploaded. String This naming is inconsistent and distribution should occur from a repository structure. repositories 4.0.0 The lists of the remote repositories java.util.List new ArrayList() mailingLists 3.0.0+ The mailing lists for the project. java.util.List new ArrayList() developers 3.0.0+ This element describes all of the developers associated with a project. Each developer is described by a developer element, which is then described by additional elements (described below). The auto-generated site documentation references this information. java.util.List new ArrayList() contributors 3.0.0+ This element describes all of the contributors associated with a project who are not developers. Each contributor is described by a contributor element, which is then describe by additional elements (described below). The auto-generated site documentation references this information. java.util.List new ArrayList() dependencies 3.0.0+ This element describes all of the dependencies associated with a project. Each dependency is described by a dependency element, which is then described by additional elements (described below). java.util.List new ArrayList() These should ultimately only be compile time dependencies when transitive dependencies come into play. overrides 4.0.0 This element describes all of the dependency overrides for a project. Each dependency is described by a override element, which is then described by additional elements (described below). java.util.List new ArrayList() licenses 3.0.0+ This element describes all of the licenses for this project. Each license is described by a license element, which is then describe by additional elements (described below). The auto-generated site documentation references this information. Projects should only list the license(s) that applies to the project and not the licenses that apply to dependencies. java.util.List new ArrayList() versions 3.0.0 The released versions of the project. java.util.List new ArrayList() branches 3.0.0 The SCM branches create for the project. java.util.List new ArrayList() packageGroups 3.0.0+ Package groups required for complete javadocs. java.util.List new ArrayList() reports 3.0.0+ This element includes the specification of reports to be included in a Maven-generated site. These reports will be run when a user executes maven site. All of the reports will be included in the navigation bar for browsing in the order they are specified. java.util.List new ArrayList() scm 4.0.0 Specification for the SCM use by the project. Scm repository 3.0.0 Specification for the SCM use by the project. Repository This element needs to be renamed as it conflicts with the existing notion of repositories in Maven. build 3.0.0+ true Information required to build the project. Build organization 3.0.0+ This element describes various attributes of the organziation to which the project belongs. These attributes are utilized when documentation is created (for copyright notices and links). Organization distributionManagement 4.0.0 Distribution information for a project. DistributionManagement local 4.0.0 false Local configuration information. Local properties 3.0.0+ Properties about the project. This allows you to configure your project and the plugins it uses. java.util.Properties new Properties() preGoals 4.0.0 Set of decorator(s) injected before the target goal(s). java.util.List new java.util.ArrayList() postGoals 4.0.0 Set of decorator(s) injected after the target goal(s). java.util.List new java.util.ArrayList() 3.0.0 public void setVersion(String version) { this.currentVersion = version; } public String getVersion() { return currentVersion; } 3.0.0+ private String packageName; public void setPackage(String packageName) { this.packageName = packageName; } public String getPackage() { return packageName; } 4.0.0 public String getId() { StringBuffer id = new StringBuffer(); id.append( getGroupId() ); id.append( ":" ); id.append( getArtifactId() ); id.append( ":" ); id.append( getType() ); id.append( ":" ); id.append( getVersion() ); return id.toString(); } Branch 3.0.0+ This element describes each of the branches of the project. Each branch is described by a tag element tag 3.0.0+ true The branch tag in the version control system (e.g. cvs) used by the project for the source code associated with this branch of the project. String description 4.0.0 A description of the branch and its strategy. String lastMergeTag 4.0.0 This is the tag in the version control system that was last used to merge from the branch to the current codebase. Future merges should merge only the changes from this tag to the next. String Build 3.0.0+ nagEmailAddress 3.0.0 An address to which notifications regarding the status of builds for this project can be sent. This is intended for use by tools which do unattended builds, for example those providing for continuous integration. Currently this is used by the maven:gump-descriptor target. String This should be moved out of the build section. Vestigal for use with Gump. sourceDirectory 3.0.0+ true This element specifies a directory containing the source of the project. The generated build system will compile the source in this directory when the project is built. The path given is relative to the project descriptor. String unitTestSourceDirectory 3.0.0+ true This element specifies a directory containing the unit test source of the project. The generated build system will compile these directories when the project is being tested. The unit tests must use the JUnit test framework. The path given is relative to the project descriptor. String aspectSourceDirectory 3.0.0+ This element specifies a directory containing Aspect sources of the project. The generated build system will compile the Aspects in this directory when the project is built if Aspects have been enabled (see the Aspectj goals document). The path given is relative to the project descriptor. String integrationUnitTestSourceDirectory 3.0.0+ This element specifies a directory containing integration test sources of the project. String sourceModifications 3.0.0+ true This element describes all of the sourceModifications associated with a project. Each source modification is described by a sourceModification element, which is then described by additional elements (described below). These modifications are used to exclude or include various source depending on the environment the build is running in. java.util.List new ArrayList() unitTest 3.0.0+ true This element specifies unit tests associated with the project. UnitTest new UnitTest() resources 3.0.0+ This element describes all of the resources associated with a project or unit tests. Each resource is described by a resource element, which is then described by additional elements (described below). These resources are used to complete the jar file or to run unit test. java.util.List new ArrayList() directory 4.0.0 The directory where all generated by the build is placed. String output 4.0.0 The directory where compiled application classes are placed. String finalName 4.0.0 The filename (including an extension, but with no path information) that the produced artifact will be called. The default value is artifactId-version.extension (where extension is derived from type). String testOutput 4.0.0 The directory where compiled test classes are placed. String CiManagement 4.0.0 system 4.0.0 The name of the continuous integration system i.e. Bugzilla String url 4.0.0 Url for the continuous integration system use by the project. String nagEmailAddress 4.0.0 Email address for the party to be notified on unsuccessful builds. String Contributor 3.0.0+ name 3.0.0+ The full name of the contributor. String email 3.0.0+ The email address of the contributor. String url 3.0.0+ The URL for the homepage of the contributor. String organization 3.0.0+ The organization to which the contributor belongs. String roles 3.0.0+ The roles the contributor plays in the project. Each role is describe by a role element, the body of which is a role name. java.util.List new ArrayList() timezone 3.0.0+ The timezone the contributor is in. This is a number in the range -14 to 14. String Dependency 3.0.0+ id 3.0.0 true The id of the project. String groupId 3.0.0+ true The project group that produced the dependency, e.g. geronimo. String artifactId 3.0.0+ true The unique id for an artifact produced by the project group, e.g. germonimo-jms String version 3.0.0+ true The version of the dependency., e.g. 3.2.1 String url 3.0.0+ This url will be provided to the user if the jar file cannot be downloaded from the central repository. String The URL should really be gleaned from a shared database of dependency information. jar 3.0.0 Literal name of the artifact. String artifact 4.0.0+ Literal name of the artifact String type 3.0.0+ Other known recognised dependency types are: ejb and plugin. String jar properties 3.0.0+ Properties about the dependency. Various plugins allow you to mark dependencies with properties. For example the war plugin looks for a war.bundle property, and if found will include the dependency in WEB-INF/lib. For example syntax, check the war plugin docs. java.util.Properties new Properties() 3.0.0+ public String toString() { return groupId + "/" + type + "s:" + artifactId + "-" + version; } 4.0.0 public String getId() { return groupId + ":" + artifactId + ":" + type + ":" + version; } 3.0.0 element is explicity used in the POM. if ( getJar() != null) { return getJar(); } return getArtifactId() + "-" + getVersion() + "." + getExtension(); } public String getExtension() { if ("ejb".equals(getType()) || "plugin".equals(getType()) || "aspect".equals(getType())) return "jar"; return getType(); } public boolean isAddedToClasspath() { return ("jar".equals(getType()) || "ejb".equals(getType())); } public boolean isPlugin() { return ("plugin".equals(getType())); } public String getProperty( String property ) { return getProperties().getProperty( property ); } public boolean equals( Object o ) { if ( this == o ) { return true; } if ( !( o instanceof Dependency ) ) { return false; } Dependency d = (Dependency) o; return getId().equals( d.getId() ); } public int hashCode() { return getId().hashCode(); } ]]> Override 4.0.0 groupId 4.0.0 true The project group that produced the dependency, e.g. geronimo. String artifactId 4.0.0 true The unique id for an artifact produced by the project group, e.g. germonimo-jms String type 4.0.0 Other known recognised dependency types are: ejb and plugin. String jar version 4.0.0 true The version of the dependency., e.g. 3.2.1 String file 4.0.0 true The filename of the dependency that will be used to override the one from the repository, e.g. lib/non-distributable-code-1.3.jar String Contributor Developer 3.0.0+ id 3.0.0+ The username of the developer. String IssueManagement 4.0.0 system 4.0.0 The name of the issue management system i.e. Bugzilla String url 4.0.0 Url for the issue management system use by the project. String DistributionManagement 4.0.0 This elements describes all that pertains to distribution for a project. repository 4.0.0 Information needed for deploying to remote repository artifacts generated by the project Repository site Information needed for deploying website files of the project. 4.0.0 Site License 3.0.0+ name 3.0.0+ The full legal name of the license. String url 3.0.0+ The official url for the license text. String distribution 3.0.0 The primary method by which this project may be distributed.
repo
may be downloaded from the Maven repository
manual
user must manually download and install the dependency.
String
comments 3.0.0+ the description String
MailingList 3.0.0+ This element describes all of the mailing lists associated with a project. Each mailing list is described by a mailingList element, which is then described by additional elements (described below). The auto-generated site documentation references this information. name 3.0.0+ The name of the mailing list. String subscribe 3.0.0+ The email address or link that can be used to subscribe to the mailing list. If this is an email address, a mailto: link will automatically be created when the documentation is created. String unsubscribe 3.0.0+ The email address or link that can be used to unsubscribe to the mailing list. If this is an email address, a mailto: link will automatically be created when the documentation is created. String post 4.0.0 The email address or link that can be used to post to the mailing list. If this is an email address, a mailto: link will automatically be created when the documentation is created. String archive 3.0.0+ The link to a URL where you can browse the archive. String This should probably be removed from 4.0.0 before alpha-1 archives 4.0.0 The link to a URL where you can browse the archive. java.util.List new ArrayList() We could probably have a specific element for a dev mailing list for things like CI, and maybe even a specific element for the user and scm mailing lists. Then leave the more lose structure for any other type of mailing list. Organization 3.0.0+ name 3.0.0+ The full name of the organization. String url 3.0.0+ The URL to the organization's home page. String logo 3.0.0+ The URL to the organization's logo image. This can be an URL relative to the base directory of the generated web site, (e.g., /images/org-logo.png) or an absolute URL (e.g., http://my.corp/logo.png). This value is used when generating the project documentation. String PackageGroup 3.0.0+ title 3.0.0+ the description String packages 3.0.0+ the description String PatternSet 3.0.0+ includes 3.0.0+ the description java.util.List new ArrayList() excludes 3.0.0+ the description java.util.List new ArrayList() 3.0.0+ public List getDefaultExcludes() { List defaultExcludes = new ArrayList(); defaultExcludes.add( "**/*~" ); defaultExcludes.add( "**/#*#" ); defaultExcludes.add( "**/.#*" ); defaultExcludes.add( "**/%*%" ); defaultExcludes.add( "**/._*" ); // CVS defaultExcludes.add( "**/CVS" ); defaultExcludes.add( "**/CVS/**" ); defaultExcludes.add( "**/.cvsignore" ); // SCCS defaultExcludes.add( "**/SCCS" ); defaultExcludes.add( "**/SCCS/**" ); // Visual SourceSafe defaultExcludes.add( "**/vssver.scc" ); // Subversion defaultExcludes.add( "**/.svn" ); defaultExcludes.add( "**/.svn/**" ); // Mac defaultExcludes.add( "**/.DS_Store" ); return defaultExcludes; } Parent 4.0.0 artifactId 4.0.0 The artifact id of the project to extend. String groupId 4.0.0 The group id of the project to extend. String version 4.0.0 The versi>on of the project to extend. String Repository 3.0.0 connection 3.0.0 The source configuration management system URL that describes the repository and how to connect to the repository. This is used by Maven when building versions from specific ID. String developerConnection 3.0.0 Just like connection, but for developers, i.e. this scm connection will not be read only. String url 3.0.0 The URL to the project's browsable CVS repository. String Scm 4.0.0 connection 4.0.0 The source configuration management system URL that describes the repository and how to connect to the repository. This is used by Maven when building versions from specific ID. String developerConnection 4.0.0 Just like connection, but for developers, i.e. this scm connection will not be read only. String url 4.0.0 The URL to the project's browsable CVS repository. String branches 4.0.0 The SCM branches that are currently active for the project. These should only be those forked from the current branch or trunk that are intended to be used. java.util.List new ArrayList() Resource 3.0.0+ PatternSet directory 3.0.0+ Describe the directory where the resource is stored. The path may be absolute, or relative to the project.xml file. String targetPath 3.0.0+ Describe the resource target path. For example, if you want that resource appear into a specific package ( org.apache.maven.messages), you must specify this element with this value : org/apache/maven/messages String filtering 3.0.0+ Describe if resources are filtered or not. String false 3.0.0+ public boolean isFiltering() { return !"false".equals( filtering ); } public void setFiltering( boolean filtering ) { this.filtering = ( filtering ? "true" : "false" ); } SourceModification 3.0.0+ Resource className 3.0.0+ If the class with this name can not be loaded, then the includes and excludes specified below will be applied to the contents of the sourceDirectory String property 3.0.0+ the description String UnitTest 3.0.0+ PatternSet resources 3.0.0+ the description java.util.List new ArrayList() Version 3.0.0 This element describes each of the previous versions of the project. Each version is described by a version element name 3.0.0 The external version number under which this release was distributed. Examples include: 1.0, 1.1-alpha1, 1.2-beta, 1.3.2 etc. String tag 3.0.0 The name given in the version control system (e.g. cvs) used by the project for the source code associated with this version of the project. String id 3.0.0 A unique identifier for a version. This ID is used to specify the version that maven:dist builds. String Repository 4.0.0 Repository contains the information needed for establishing connections with remote repoistory id 4.0.0 A unique identifier for a repository. String name 4.0.0 Human readable name of the repository String url 4.0.0 The url of of the repository String 4.0.0 public boolean equals( Object obj ) { Repository other = ( Repository ) obj; boolean retValue = false; if ( id != null ) { retValue = id.equals( other.id ); } return retValue; } Site 4.0.0 Site contains the information needed for deploying websites. id 4.0.0 A unique identifier for a deployment locataion. String name 4.0.0 Human readable name of the deployment location String url 4.0.0 The url of of the location where website is deployed String GoalDecorator 4.0.0 name 4.0.0 The target goal which should be decorated. String attain 4.0.0 The goal which should be injected into the execution chain. String GoalDecorator PreGoal 4.0.0 GoalDecorator PostGoal 4.0.0 Local 4.0.0 Local contains the information that is specific to the user's local environment. This would only be expected in a user or site pom, not a project POM. repository 4.0.0 The local repository that contains downloaded artifacts. String online 4.0.0 Whether to run the build online. If not, no remote repositories are consulted for plugins or dependencies and this configuration may be used by other plugins requiring online access. String true 4.0.0 public boolean isOnline() { // Only the value false is offline - anything else is online return !"false".equals( online ); } public void setOnline( boolean online ) { this.online = ( online ? "true" : "false" ); }