<?xml version="1.0" encoding="UTF-8"?><!--
      Licensed to the Apache Software Foundation (ASF) under one
      or more contributor license agreements.  See the NOTICE file
      distributed with this work for additional information
      regarding copyright ownership.  The ASF licenses this file
      to you 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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/XDOC/2.0" xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"><properties><title>Cocoon Maven Plugins Site - List</title><author email="cocoon-docs@apache.org">Apache Cocoon Documentation Team</author></properties><body>
         <div id="contentBody"><div id="bodyText"><h1 class="docTitle">List</h1><p>All the listed modules require a working Maven 2 (2.0.6 or higher)
installation. If you are not familiar with Maven 2, see</p><ul>
<li>
<a href="http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html">Maven
in 5 minutes</a> and the</li>
<li><a href="http://maven.apache.org/guides/getting-started/index.html">Getting
started guide</a></li>
</ul><table class="bodyTable">
<tbody>
<tr class="a">
<th>
<strong>Name</strong>
</th>
<th>
<strong>Versions</strong>
</th>
<th>
<p><strong>Description</strong></p>
</th>
</tr>
<tr class="b">
<td>
<p><strong><a href="maven-plugin/1.0/">Cocoon Maven Plugin</a></strong></p>
</td>
<td><a href="maven-plugin/1.0/">1.0</a></td>
<td>
<p>The Cocoon Maven plugin contains several goals that make the life of software
developers easier, e.g. support for running blocks as webapps or support for
paching the web.xml at deployment time.</p>
</td>
</tr>
<tr class="b">
<td>
<p><strong><a href="it-fw/1.0/">Cocoon Integration Test Framework</a></strong></p>
</td>
<td><a href="it-fw/1.0/">1.0</a></td>
<td>
<p>The Cocoon Integration Test Framework provides support for running integration tests.</p>
</td>
</tr>
<tr class="a">
<td>
<p><strong>Block Archetype</strong></p>
</td>
<td>
<p>1.0</p>
</td>
<td>
<p>This archetype creates a Cocoon block that comes with some small samples. The
purpose of them is not to show every possible feature but at least something
that already works and where you can start a Cocoon project from:</p>

<pre>mvn archetype:create
  -DarchetypeGroupId=org.apache.cocoon
  -DarchetypeArtifactId=cocoon-22-archetype-block
  -DarchetypeVersion=1.0.0
  -DgroupId=com.mycompany
  -DartifactId=myBlock</pre>

<div class="note"><div><strong>Note: </strong>Once again, for simple copy and paste:<br/>
<tt>mvn archetype:create -DarchetypeGroupId=org.apache.cocoon
-DarchetypeArtifactId=cocoon-22-archetype-block -DarchetypeVersion=1.0.0
-DgroupId=com.mycompany -DartifactId=myBlock</tt></div></div>

<p>See the <a href="../../2.2/1159_1_1.html">Your first Cocoon application</a> tutorial for
further details.</p>
</td>
</tr>
<tr class="b">
<td>
<p><strong>Webapp Archetype</strong></p>
</td>
<td>
<p>1.0</p>
</td>
<td>
<p>Use this archetype to create a web application that is configured to host
Cocoon blocks. You only need to add the blocks dependencies:</p>

<pre>mvn archetype:create
  -DarchetypeGroupId=org.apache.cocoon
  -DarchetypeArtifactId=cocoon-22-archetype-webapp
  -DarchetypeVersion=1.0.0
  -DgroupId=com.mycompany
  -DartifactId=<tt>myCocoonWebapp</tt></pre>

<div class="note"><div><strong>Note: </strong>Once again, for simple copy and paste:<br/>
<tt>mvn archetype:create -DarchetypeGroupId=org.apache.cocoon
-DarchetypeArtifactId=cocoon-22-archetype-webapp -DarchetypeVersion=1.0.0
-DgroupId=com.mycompany -DartifactId=myCocoonWebapp</tt></div></div>

<p>See the <a href="../../2.2/1362_1_1.html">Deploying a Cocoon application</a> tutorial for
further details.</p>
</td>
</tr>
<tr class="a">
<td>
<p><strong>Plain Block Archetype</strong></p>
</td>
<td>
<p>1.0</p>
</td>
<td>
<p>Use this archetype to create an empty Cocoon block. It is only useful if you
want to add yet another block to your Cocoon based application (e.g. there are
plugin configured and the dependencies don't have a version set):</p>

<pre>mvn archetype:create
  -DarchetypeGroupId=org.apache.cocoon
  -DarchetypeArtifactId=cocoon-22-archetype-block-plain
  -DarchetypeVersion=1.0.0
  -DgroupId=com.mycompany
  -DartifactId=myBlock
</pre>

<div class="note"><div><strong>Note: </strong>Once again, for simple copy and paste:<br/>
<tt>mvn archetype:create -DarchetypeGroupId=org.apache.cocoon
-DarchetypeArtifactId=cocoon-22-archetype-block-plain -DarchetypeVersion=1.0.0
-DgroupId=com.mycompany -DartifactId=myBlock</tt></div></div>
</td>
</tr>
</tbody>
</table></div></div>
       </body></document>
