maven Maven Maven's model for Java project. org.apache.maven.model Model Model 4.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 modelVersion 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 version 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 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 distriubtion 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 distriubtion should occur from a repository structure. 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. 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 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 3.0.0 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 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 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() 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 dependency. String 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 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() public String getId() { return groupId + ":" + artifactId; } 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 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 archive 3.0.0+ 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 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() 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 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 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