maven-plugins/pom/xdocs/validation.xml
2005-10-18 22:38:17 +00:00

192 lines
5.5 KiB
XML

<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<title>Validation</title>
</properties>
<body>
<section name="Validating your POM">
<p>
The <code>pom:validate</code> goal performs a validation of your
project descriptor (<code>project.xml</code>, pom) against an xsd
schema. The general form of a project descriptor can be found
on the main Maven
<a href="http://maven.apache.org/reference/project-descriptor.html">site</a>.
</p>
<subsection name="Required elements">
<p>
The validation routine works differently for stand-alone
poms and poms that extend other ones (child poms).
The following table shows which
top-level elements (<emph>i.e.</emph>, elements just below the
<code>&lt;project&gt;</code> root) are required in each case.
</p>
<table>
<tr>
<th>Element name</th>
<th>Required in stand-alone pom?</th>
<th>Required in child pom?</th>
</tr>
<tr>
<td><code>&lt;extend/&gt;</code></td>
<td>N/A</td><td>Yes</td>
</tr>
<tr>
<td><code>&lt;pomVersion/&gt;</code></td>
<td>Yes</td><td>Yes</td>
</tr>
<tr>
<td><code>&lt;id/&gt;</code></td>
<td>Yes</td><td>Yes</td>
</tr>
<tr>
<td><code>&lt;groupId/&gt;</code></td>
<td>Yes</td><td>No</td>
</tr>
<tr>
<td><code>&lt;artifactId/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;name/&gt;</code></td>
<td>Yes</td><td>Yes</td>
</tr>
<tr>
<td><code>&lt;currentVersion/&gt;</code></td>
<td>Yes</td><td>Yes</td>
</tr>
<tr>
<td><code>&lt;description/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;shortDescription/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;url/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;logo/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;issueTrackingUrl/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;inceptionYear/&gt;</code></td>
<td>Yes</td><td>No</td>
</tr>
<tr>
<td><code>&lt;gumpRepositoryId/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;siteAddress/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;siteDirectory/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;distributionSite/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;distributionDirectory/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;mailingLists&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;developers&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;contributors&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;licenses&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;versions&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;branches&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;packageGroups&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;reports&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;repository&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;organization&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;properties&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;package/&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;build&gt;</code></td>
<td>No</td><td>No</td>
</tr>
<tr>
<td><code>&lt;dependencies&gt;</code></td>
<td>No</td><td>No</td>
</tr>
</table>
</subsection>
<subsection name="Namespace">
<p>
It is recommended that you include a namespace declaration in your
project root:
</p>
<source><![CDATA[<project xmlns="http://maven.apache.org/POM/3.0.0">]]></source>
<p>
but this is currently not enforced by the validation routine.
</p>
</subsection>
</section>
</body>
</document>