maven
Maven
4.0.0
Maven's model for Java project.
org.apache.maven.model
Model
Model
extend
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
The version of this model you are using.
String
pomVersion
3.0.0
modelVersion
groupId
3.0.0
The primary grouping for your project.
String
artifactId
3.0.0
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
Human readable name of the project.
String
currentVersion
3.0.0
version
version
4.0.0
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
inceptionYear
3.0.0
The year the project started.
String
gumpRepositoryId
Hint for the gump continuous integration build system.
String
siteAddress
The FQDN of the host where the project's site is uploaded.
String
siteDirectory
The directory on the site host where site documentation is placed when the site is uploaded.
String
distributionSite
The FQDN of the host where the project's artifacts are uploaded.
String
This naming is inconsistent and distriubtion should occur from a repository structure.
distributionDirectory
The directory on the distribution host where artifacts are placed when uploaded.
String
This naming is inconsistent and distriubtion should occur from a repository structure.
mailingLists
The mailing lists for the project.
java.util.List
new ArrayList()
developers
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
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
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.
licenses
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
The released versions of the project.
java.util.List
new ArrayList()
branches
The SCM branches create for the project.
java.util.List
new ArrayList()
packageGroups
Package groups required for complete javadocs.
java.util.List
new ArrayList()
reports
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
Specification for the SCM use by the project.
Scm
This element needs to be renamed as it conflicts with the existing notion of repositories in Maven.
build
Information required to build the project.
Build
organization
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
private String packageName;
public void setPackage(String packageName)
{
this.packageName = packageName;
}
public String getPackage()
{
return packageName;
}
public String getId()
{
StringBuffer id = new StringBuffer();
id.append( getGroupId() );
id.append( ":" );
id.append( getArtifactId() );
id.append( ":" );
id.append( getType() );
return id.toString();
}
public void setId( String id )
{
int i = id.indexOf( "+" );
int j = id.indexOf( ":" );
if ( i > 0 )
{
setGroupId( id.substring( 0, i ) );
setArtifactId( id.replace( '+', '-' ) );
}
else if ( j > 0 )
{
setGroupId( id.substring( 0, j ) );
setArtifactId( id.substring( j + 1 ) );
}
else
{
setGroupId( id );
setArtifactId( id );
}
}
Branch
This element describes each of the branches of the
project. Each branch is described by a tag
element
tag
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
Build
nagEmailAddress
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
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
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
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
sourceModifications
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
This element specifies unit tests associated with the project.
UnitTest
new UnitTest()
resources
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()
Contributor
name
The full name of the contributor.
String
email
The email address of the contributor.
String
url
The URL for the homepage of the contributor.
String
organization
The organization to which the contributor belongs.
String
roles
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
The timezone the contributor is in. This is a number in the range -14 to 14.
String
Dependency
groupId
The project group that produced the dependency, e.g. geronimo
.
String
artifactId
The unique id for an artifact produced by the project group, e.g.
germonimo-jms
String
version
The version of the dependency., e.g. 3.2.1
String
url
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.
artifact
the description
String
type
Other known and recognised dependency types are:
ejb
and plugin
.
String
jar
properties
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()
public String getId()
{
return groupId + ":" + artifactId;
}
Contributor
Developer
id
The username of the developer.
String
License
name
The full legal name of the license.
String
url
The official url for the license text.
String
distribution
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
the description
String
MailingList
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
The name of the mailing list.
String
subscribe
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
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
archive
The link to a URL where you can browse the archive.
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
name
The full name of the organization.
String
url
The URL to the organization's home page.
String
logo
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
title
the description
String
packages
the description
String
PatternSet
includes
the description
java.util.List
new ArrayList()
excludes
the description
java.util.List
new ArrayList()
Parent
artifactId
The artifact id of the project to extend.
String
groupId
The group id of the project to extend.
String
version
The version of the project to extend.
String
Scm
connection
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
Just like connection, but for developers, i.e. this scm connection
will not be read only.
String
url
The URL to the project's browsable CVS repository.
String
Resource
PatternSet
directory
Describe the directory where the resource is stored.
The path may be absolute, or relative to the project.xml file.
String
targetPath
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
Describe if resources are filtered or not.
String
false
SourceModification
Resource
className
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
the description
String
UnitTest
PatternSet
resources
the description
java.util.List
new ArrayList()
Version
This element describes each of the previous versions of the
project. Each version is described by a version
element
name
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
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
A unique identifier for a version. This ID is
used to specify the version that maven:dist
builds.
String