diff --git a/maven-model/maven.mdo.new b/maven-model/maven.mdo.new new file mode 100644 index 0000000000..31cba04288 --- /dev/null +++ b/maven-model/maven.mdo.new @@ -0,0 +1,1278 @@ + + + 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 primary id for your 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 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. + + + 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. + + + 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 + + + + + + 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 + + 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() + + + 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 + + + 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 dependency. + + 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() + + + + + 4.0.0 + + public String getId() + { + return groupId + ":" + artifactId + ":" + type + ":" + version; + } + + public String toString() + { + return groupId + "/" + type + "s:" + artifactId + "-" + version; + } + + + + + + 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 + + + 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() + + + + + 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 + + + + + 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 + + + + + + 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 + + + + +
+