maven
Maven
package
org.apache.maven.model
Model
3.0.0+
extend
3.0.0+
String
parent
4.0.0
Parent
modelVersion
4.0.0
true
String
pomVersion
3.0.0
true
String
id
3.0.0
true
String
groupId
3.0.0+
true
String
artifactId
3.0.0+
true
String
type
4.0.0
String
jar
name
3.0.0+
true
String
currentVersion
3.0.0
true
String
version
4.0.0
true
String
shortDescription
3.0.0+
String
description
3.0.0+
front page
of the project's web site.
]]>
String
url
3.0.0+
String
logo
3.0.0+
String
issueTrackingUrl
3.0.0
String
issueManagement
4.0.0
IssueManagement
ciManagement
4.0.0
CiManagement
inceptionYear
3.0.0+
true
String
gumpRepositoryId
3.0.0
String
siteAddress
3.0.0
String
siteDirectory
3.0.0
String
distributionSite
3.0.0
String
This naming is inconsistent and distribution should occur from a repository structure.
distributionDirectory
3.0.0
String
This naming is inconsistent and distribution should occur from a repository structure.
repositories
4.0.0
Repository
*
pluginRepositories
4.0.0
Repository
*
This may be removed or relocated in the near future. It is undecided whether plugins really need a remote repository set of their own.
plugins
4.0.0
Plugin
*
mailingLists
3.0.0+
MailingList
*
developers
3.0.0+
developer element, which is then described by
additional elements (described below). The auto-generated site
documentation references this information.
]]>
Developer
*
contributors
3.0.0+
contributor element, which is then describe by additional
elements (described below). The auto-generated site documentation
references this information.
]]>
Contributor
*
dependencies
3.0.0+
dependency element, which is then described by
additional elements (described below).
]]>
Dependency
*
These should ultimately only be compile time dependencies when transitive dependencies come into play.
licenses
3.0.0+
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.
]]>
License
*
versions
3.0.0
Version
*
branches
3.0.0
Branch
*
packageGroups
3.0.0+
PackageGroup
*
reports
3.0.0+
maven site. All of the
reports will be included in the navigation bar for browsing in
the order they are specified.
]]>
String
*
scm
4.0.0
Scm
repository
3.0.0
Repository
This element needs to be renamed as it conflicts with the existing notion of repositories in Maven.
build
3.0.0+
true
Build
organization
3.0.0+
Organization
distributionManagement
4.0.0
DistributionManagement
dependencyManagement
4.0.0
false
DependencyManagement
properties
3.0.0+
Properties
String
*
preGoals
4.0.0
PreGoal
*
postGoals
4.0.0
PostGoal
*
packageName
3.0.0+
String
The Java package that the code resides in.
3.0.0
public void setVersion(String version)
{
this.currentVersion = version;
}
public String getVersion()
{
return currentVersion;
}
3.0.0+
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
tag
element
]]>
tag
3.0.0
true
String
Build
3.0.0+
nagEmailAddress
3.0.0
maven:gump-descriptor
target.
]]>
String
This should be moved out of the build section. Vestigal for use with Gump.
sourceDirectory
3.0.0+
true
String
unitTestSourceDirectory
3.0.0+
true
String
sourceModifications
3.0.0+
true
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.
]]>
SourceModification
*
unitTest
3.0.0+
true
new UnitTest()
UnitTest
resources
3.0.0+
below). These resources are used to
complete the jar file or to run unit test.
]]>
Resource
*
directory
4.0.0
String
output
4.0.0
String
finalName
4.0.0
String
testOutput
4.0.0
String
CiManagement
4.0.0
system
4.0.0
String
url
4.0.0
String
nagEmailAddress
4.0.0
String
Contributor
3.0.0+
name
3.0.0+
String
email
3.0.0+
String
url
3.0.0+
String
organization
3.0.0+
String
roles
3.0.0+
role element, the body of which is a
role name.
]]>
String
*
timezone
3.0.0+
String
Dependency
3.0.0+
id
3.0.0
true
String
groupId
3.0.0+
true
geronimo.
]]>
String
artifactId
3.0.0+
true
germonimo-jms
]]>
String
version
3.0.0+
3.2.1
]]>
String
url
3.0.0
String
The URL should really be gleaned from a shared database of dependency information.
jar
3.0.0
String
type
3.0.0+
ejb and
plugin
.
]]>
String
jar
properties
3.0.0+
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.
]]>
Properties
String
*
file
4.0.0
Override the use of a repository - retrieve it from this file
String
3.0.0+
public String toString()
{
return groupId + "/" + type + "s:" + artifactId + "-" + version;
}
4.0.0
public String getId()
{
return groupId + ":" + artifactId + ":" + type + ":" + version;
}
public String getManagementKey()
{
return groupId + ":" + artifactId + ":" + type;
}
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();
}
]]>
Contributor
Developer
3.0.0+
id
3.0.0+
String
IssueManagement
4.0.0
system
4.0.0
String
url
4.0.0
String
DistributionManagement
4.0.0
repository
4.0.0
Repository
site
4.0.0
Site
License
3.0.0+
name
3.0.0+
String
url
3.0.0+
String
distribution
3.0.0
repo
may be downloaded from the Maven repository
manual
user must manually download and install the dependency.
]]>
String
comments
3.0.0+
String
MailingList
3.0.0+
mailingList element, which is then described by
additional elements (described below). The auto-generated site
documentation references this information.
]]>
name
3.0.0+
String
subscribe
3.0.0+
mailto: link will automatically be created when
the documentation is created.
]]>
String
unsubscribe
3.0.0+
mailto: link will automatically be created
when the documentation is created.
]]>
String
post
3.1.0+
mailto: link will automatically be created
when the documentation is created.
]]>
String
archive
3.0.0+
String
otherArchives
3.1.0+
String
*
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+
String
url
3.0.0+
String
logo
3.0.0+
/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+
String
packages
3.0.0+
String
PatternSet
3.0.0+
includes
3.0.0+
String
*
excludes
3.0.0+
String
*
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
String
groupId
4.0.0
String
version
4.0.0
on of the project to extend.]]>
String
Repository
3.0.0
connection
3.0.0
building versions
from specific ID.
]]>
String
developerConnection
3.0.0
String
url
3.0.0
String
Scm
4.0.0
connection
4.0.0
building versions
from specific ID.
]]>
String
developerConnection
4.0.0
String
url
4.0.0
String
branches
4.0.0
String
*
FileSet
3.0.0+
PatternSet
directory
3.0.0+
String
Resource
3.0.0+
FileSet
targetPath
3.0.0+
org.apache.maven.messages), you must specify this
element with this value :
org/apache/maven/messages
]]>
String
filtering
3.0.0+
boolean
false
SourceModification
3.0.0+
FileSet
className
3.0.0+
not be
loaded, then the includes and excludes specified below
will be applied to the contents of the
sourceDirectory
]]>
String
property
3.0.0+
String
UnitTest
3.0.0+
PatternSet
resources
3.0.0+
Resource
*
Version
3.0.0
version
element
]]>
name
3.0.0
1.0,
1.1-alpha1
,
1.2-beta
,
1.3.2
etc.
]]>
String
tag
3.0.0
String
id
3.0.0
maven:dist
builds.
]]>
String
3.0.0
public String toString()
{
return getId();
}
Repository
4.0.0
id
4.0.0
String
name
4.0.0
String
url
4.0.0
String
username
4.0.0
The username to connect to the repository with. If omitted, none is used.
String
password
4.0.0
The password to use when connecting to the repository. If omitted, none is used.
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
id
4.0.0
String
name
4.0.0
String
url
4.0.0
String
GoalDecorator
4.0.0
name
4.0.0
String
attain
4.0.0
String
GoalDecorator
PreGoal
4.0.0
GoalDecorator
PostGoal
4.0.0
Plugin
4.0.0
id
4.0.0
String
true
version
4.0.0
true
String
configuration
Properties
String
*
goals
4.0.0
Goal
*
Goal
4.0.0
id
4.0.0
String
configuration
Properties
String
*
DependencyManagement
4.0.0
Section for management of default dependency information for use in a group of POMs.
dependencies
4.0.0
The dependencies specified here are not validated until they
are referenced in a POM within the group. This allows the
specification of a "standard" version for a particular
dependency.
Dependency
*