You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ra...@apache.org on 2008/02/26 00:07:21 UTC
svn commit: r631032 - in /maven/archetype/trunk/archetype-plugin: ./
src/site/ src/site/apt/ src/site/apt/examples/ src/site/apt/specification/
Author: rafale
Date: Mon Feb 25 15:07:10 2008
New Revision: 631032
URL: http://svn.apache.org/viewvc?rev=631032&view=rev
Log:
re added documentation in the plugin site
Added:
maven/archetype/trunk/archetype-plugin/nbactions.xml (with props)
maven/archetype/trunk/archetype-plugin/src/site/
maven/archetype/trunk/archetype-plugin/src/site/apt/
maven/archetype/trunk/archetype-plugin/src/site/apt/advanced-usage.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/examples/
maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-alternative-catalog.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-basic.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-batch.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-basic.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-deploy.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/index.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-catalog.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-metadata.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/crawl-repository.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/create-from-project.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/generate.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/specification.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/specification/update-catalog.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/apt/usage.apt (with props)
maven/archetype/trunk/archetype-plugin/src/site/site.xml (with props)
Added: maven/archetype/trunk/archetype-plugin/nbactions.xml
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/nbactions.xml?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/nbactions.xml (added)
+++ maven/archetype/trunk/archetype-plugin/nbactions.xml Mon Feb 25 15:07:10 2008
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actions>
+ <action>
+ <actionName>CUSTOM-stage-site-at-apache</actionName>
+ <displayName>stage-site-at-apache</displayName>
+ <goals>
+ <goal>clean</goal>
+ <goal>site:stage-deploy</goal>
+ </goals>
+ <activatedProfiles>
+ <activatedProfile>release-at-apache</activatedProfile>
+ </activatedProfiles>
+ </action>
+ </actions>
Propchange: maven/archetype/trunk/archetype-plugin/nbactions.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/advanced-usage.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/advanced-usage.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/advanced-usage.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/advanced-usage.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,151 @@
+ ------
+ Advanced Usage
+ ------
+ Raphaël Piéroni
+ ------
+ 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+Archetype creation
+
+ Creating an archetype from an existing project involves three steps :
+
+ * the archetype resolution
+
+ * the archetype installation:deployment
+
+ * the archetype usage
+
+ []
+
+
+Usage
+
+ Calling <<<mvn archetype:create-from-project>>> the plugin first resolves
+ the package by guessing the project directory.
+
+ It then generates the directory tree of the archetype in the
+ <<<target/generated-sources/archetype>>> directory.
+
++---
+mvn archetype:create-from-project
+[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: 'archetype'.
+[INFO] ------------------------------------------------------------------------
+[INFO] Building project
+[INFO] task-segment: [archetype:create-from-project]
+[INFO] ------------------------------------------------------------------------
+[INFO] Preparing archetype:create-from-project
+[INFO] No goals needed for project - skipping
+[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
+[INFO] Setting property: velocimacro.messages.on => 'false'.
+[INFO] Setting property: resource.loader => 'classpath'.
+[INFO] Setting property: resource.manager.logwhenfound => 'false'.
+[INFO] [archetype:create-from-project]
+[INFO] Setting default archetype's groupId: com.company
+[INFO] Setting default archetype's artifactId: project
+[INFO] Setting default archetype's version: 1.0-SNAPSHOT
+[INFO] Setting default groupId: com.company
+[INFO] Setting default artifactId: project
+[INFO] Setting default version: 1.0-SNAPSHOT
+[INFO] Setting default package: com.company.project
+[INFO] Archetype created in target/generated-sources/archetype
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 4 seconds
+[INFO] Finished at: Fri Feb 22 21:49:52 GMT 2008
+[INFO] Final Memory: 10M/26M
+[INFO] ------------------------------------------------------------------------
++---
+
+ Then move to that generated directory and call <<<mvn install>>> on the
+ created archetype.
+
++---
+$ cd target/generated-sources/archetype/
+$ mvn install
+[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Building project
+[INFO] task-segment: [install]
+[INFO] ------------------------------------------------------------------------
+[INFO] [resources:resources]
+[INFO] Using default encoding to copy filtered resources.
+[INFO] [resources:testResources]
+[INFO] Using default encoding to copy filtered resources.
+[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
+[INFO] Setting property: velocimacro.messages.on => 'false'.
+[INFO] Setting property: resource.loader => 'classpath'.
+[INFO] Setting property: resource.manager.logwhenfound => 'false'.
+[INFO] [archetype:jar]
+[INFO] [archetype:add-archetype-metadata]
+[INFO] [archetype:integration-test]
+[INFO] [install:install]
+[INFO] Installing /home/local/rafale/projects/tmp/project/target/generated-sources/archetype/target/project-1.0-SNAPSHOT.jar to /home/rafale/.m2/repository/com/company/project/1.0-SNAPSHOT/project-1.0-SNAPSHOT.jar
+[INFO] [archetype:update-local-catalog]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 10 seconds
+[INFO] Finished at: Fri Feb 22 21:51:57 GMT 2008
+[INFO] Final Memory: 14M/35M
+[INFO] ------------------------------------------------------------------------
++---
+
+ Finally move to a fresh directory and use your archetype.
+
++---
+$ mkdir /tmp/archetype
+$ cd /tmp/archetype
+$ mvn archetype:generate -DarchetypeCatalog=local
+[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: 'archetype'.
+[INFO] ------------------------------------------------------------------------
+[INFO] Building Maven Default Project
+[INFO] task-segment: [archetype:generate] (aggregator-style)
+[INFO] ------------------------------------------------------------------------
+[INFO] Preparing archetype:generate
+[INFO] No goals needed for project - skipping
+[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
+[INFO] Setting property: velocimacro.messages.on => 'false'.
+[INFO] Setting property: resource.loader => 'classpath'.
+[INFO] Setting property: resource.manager.logwhenfound => 'false'.
+[INFO] [archetype:generate]
+Choose archetype:
+1: local -> project (project)
+Choose a number: (1):
++---
+
+Configuration
+
+ The <<<create-from-project>>> mojo enable the user to provide some sensible
+ configuration using the system properties or a property file.
+
+ The system properties permits the user to define the groupId, artifactId,
+ version of the created archetype. They also permits to override the resolved
+ package and to create a partial archetype.
+
+ When used, the property file takes precedence on the system properties.
+ It is also the only way to define additional properties in the archetype.
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/advanced-usage.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-alternative-catalog.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-alternative-catalog.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-alternative-catalog.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-alternative-catalog.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,28 @@
+ ------
+ XXXXXXX
+ ------
+ Raphaël Piéroni
+ ------
+ 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-alternative-catalog.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-basic.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-basic.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-basic.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-basic.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,28 @@
+ ------
+ XXXXXXX
+ ------
+ Raphaël Piéroni
+ ------
+ 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-basic.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-batch.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-batch.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-batch.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-batch.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,79 @@
+ ------
+ Create project in batch mode
+ ------
+ Raphaël Piéroni
+ ------
+ 04 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+ * Create project in batch mode
+
+ It is possible to get rid of the interactivity of the archetype plugin
+ by defining the <<<archetype.interactive>>> property to <<<false>>>.
+ A couple of meaningfull properties are the required.
+
+ The archetypeGroupId, archetypeArtifactId and archetypeVersion defines the
+ archetype to use for project creation.
+
+ The groupId, artifactId, version and package are the main properties to be
+ set. Each archetype require these properties. Some archetypes defines other
+ properties; refers to the appropriate archetype documentation if needed.
+
+
++--
+$ mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -Darchetype.interactive=false -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.0 -DgroupId=com.company -DartifactId=project -Dversion=1.0 -Dpackage=1.5
+[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: 'archetype'.
+[INFO] ------------------------------------------------------------------------
+[INFO] Building Maven Default Project
+[INFO] task-segment: [archetype:create] (aggregator-style)
+[INFO] ------------------------------------------------------------------------
+[INFO] Preparing archetype:create
+[INFO] No goals needed for project - skipping
+Downloading: http://repo1.maven.org/maven2/com/company/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
+Downloading: http://repo1.maven.org/maven2/com/company/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
+[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
+[INFO] Setting property: velocimacro.messages.on => 'false'.
+[INFO] Setting property: resource.loader => 'classpath'.
+[INFO] Setting property: resource.manager.logwhenfound => 'false'.
+[INFO] [archetype:create]
+[INFO] Archetype repository missing. Using the one from [org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE -> http://repo1.maven.org/maven2] found in catalog internal
+[INFO] ----------------------------------------------------------------------------
+[INFO] Using following parameters for creating OldArchetype: maven-archetype-quickstart:1.0
+[INFO] ----------------------------------------------------------------------------
+[INFO] Parameter: groupId, Value: com.company
+[INFO] Parameter: packageName, Value: 1.5
+[INFO] Parameter: package, Value: 1.5
+[INFO] Parameter: artifactId, Value: project
+[INFO] Parameter: basedir, Value: /home/local/rafale/projects/tmp
+[INFO] Parameter: version, Value: 1.0
+[INFO] ********************* End of debug info from resources from generated POM ***********************
+[INFO] OldArchetype created in dir: /home/local/rafale/projects/tmp/project
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 6 seconds
+[INFO] Finished at: Mon Feb 04 19:56:03 GMT 2008
+[INFO] Final Memory: 10M/25M
+[INFO] ------------------------------------------------------------------------
++--
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-batch.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-basic.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-basic.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-basic.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-basic.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,30 @@
+ ------
+ XXXXXXX
+ ------
+ Raphaël Piéroni
+ ------
+ 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-basic.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-deploy.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-deploy.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-deploy.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-deploy.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,29 @@
+ ------
+ XXXXXXX
+ ------
+ Raphaël Piéroni
+ ------
+ 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/examples/create-from-project-deploy.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/index.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/index.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/index.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,90 @@
+ ------
+ Introduction
+ ------
+ Raphaël Piéroni
+ ------
+ 25 January 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+Maven 2 Archetype Plugin
+
+ The Archetype Plugin allows the user to create a Maven 2 project
+ from an existing template called an archetype.
+
+ It also allows the user to create an archetype from an existing project.
+ (<currently under development>)
+
+
+* Usage
+
+ {{{usage.html}Instructions on how to use the Archetype Plugin to create a project}}
+ can be found on the usage page.
+
+ The Archetype Plugin is embedded in IDE {{{#}eclipse}}, {{{#}netbeans}},
+ {{{#}idea}}.
+
+ {{{advanced-usage.html}Instruction on how to use the Archetype Plugin to create an archetype from an existing project}}
+ can be found on the advanced usage page.
+
+
+* Goals Overview
+
+ The archetype plugin has two goals:
+
+ * {{{create-mojo.html}archetype:create}} creates a Maven 2 project from an
+ archetype. It use the behaviour of the Archetype plugin Version 1.0-alpha-7.
+
+ * {{{generate-mojo.html}archetype:generate}} ask the user to choose an archetype
+ from the archetype catalog, and retrieves it from the remote repository.
+ Once retrieved, it is processed to create a working Maven project.
+
+ * {{{create-from-project-mojo.html}archetype:create-from-project}} creates
+ an archetype from an existing project.
+
+ * {{{crawl-mojo.html}archetype:crawl}} search a repository
+ for archetype and updates a catalog.
+
+ []
+
+
+* Examples
+
+ The following examples show how to use the Archetype Plugin in more advanced
+ usecases:
+
+ * {{{examples/create-batch.html}create projects in batch mode}}
+
+ * {{{#}create a sub module from an archetype}}
+
+ * {{{#}select the archetype from another catalog}}
+
+ []
+
+
+ * Specification
+
+ The specification page contains
+ {{{specification/specification.html}the specification of the main parts of the Archetype Plugin}}.
+
+
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/index.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-catalog.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-catalog.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-catalog.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-catalog.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,118 @@
+ ------
+ Archetype Catalog
+ ------
+ Raphaël Piéroni
+ ------
+ 10 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+How the Archetype Plugin know about archetype?
+
+ Knowledge about archetypes are stored in catalogs.
+
+ The catalogs are xml files.
+
+ The Archetype Plugin comes bundled with an internal catalog.
+ The one used by default.
+
+ The Archetype Plugin can use catalogs from local filesystem and from HTTP
+ connexions.
+
+* Catalog file explained
+
+ Catalogs are xml file with such content:
+
++---
+<?xml version="1.0" encoding="UTF-8"?>
+<archetype-catalog>
+ <archetypes>
+ <archetype>
+[1] <groupId>org.appfuse.archetypes</groupId>
+[2] <artifactId>appfuse-basic-jsf</artifactId>
+[3] <version>2.0</version>
+[4] <repository>http://static.appfuse.org/releases</repository>
+[5] <description>AppFuse archetype for creating a web application with Hibernate, Spring and JSF</description>
+ </archetype>
+ ...
+ </archetypes>
+</archetype-catalog>
++---
+
+ [[1]] The groupId of the archetype. <<REQUIRED>>
+
+ [[2]] The artifactId of the archetype. <<REQUIRED>>
+
+ [[3]] The version of the archetype. <<<RELEASE>>> is a valid version. <<REQUIRED>>
+
+ [[4]] The repository where to find the archetype. <<OPTIONAL>>. When
+ ommited, the archetype is searched in the repository where the catalog
+ comes from.
+
+ [[5]] The description of the archetype. <<OPTIONAL>>
+
+
+* Archetype selection explained
+
+ During the creation of a project from an archetype, the Archetype Plugin
+ ask the user to choose an archetype from a list containing the archetypes
+ from each of the provided catalogs (Yes there may be many).
+
+ For each archetype in the list the Archetype Plugin shows a line like:
+
++---
+1: internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)
++---
+
+ * <<<1:>>> The index of the archetype in the aggregated list (starting from
+ 1).
+
+ * <<<internal>>> The name of the catalog where the archetype is originating.
+
+ * <<<appfuse-basic-jsf>>> The artifactId of the archetype
+
+ * <<<(AppFuse archetype...)>>> The description of the archetype as found in
+ the catalog.
+
+
+* Creating a catalog file
+
+ At the end of the <<<create-from-project>>> behaviour, the Archetype Plugin
+ install/deploy the archetype, and update the local/remote catalog.
+
+ The <<<crawl-repository>>> mojo is used to create a catalog file by crawling
+ a Maven 2 repository located in the filesystem.
+
+* Location of catalog files
+
+ The Archetype Plugin knows by default its internal catalog. It also know
+ about the <<<local>>> and <<<remote>>> catalogs.
+
+ <<<local>>> represents the catalog file <<<~/.m2/archetype-catalog.xml>>>.
+
+ <<<remote>>> represents the catalog file <<<http://repo1.maven.org/maven2/archetype-catalog.xml>>>.
+
+ The Archetype Plugin can also read catalogs from filesystem/HTTP by
+ providing the path/URL of a catalog file or of a directory contaings the
+ <<<archetype-catalog.xml>>> file.
+
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-catalog.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-metadata.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-metadata.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-metadata.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-metadata.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,210 @@
+ ------
+ Archetype Metadata
+ ------
+ Raphaël Piéroni
+ ------
+ 10 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+How metadata on an archetype is stored?
+
+ The metadata about an archetype is stored in the archetype-metadata.xml file
+ located in the directory META-INF/maven of it's jar file.
+
+ The metadata file stores the additionnal properties, with corresponding
+ default values.
+
+ It also stores the project's files generation in filesets.
+
+ Finnaly it also stores inner modules of the archetype, which enable the
+ creation of multi-modules projects with a single archetype.
+
+ A minimal archetype-metadata.xml file looks like:
+
++---
+<?xml version="1.0" encoding="UTF-8"?>
+<archetype-descriptor name="basic">
+ <fileSets>
+ <fileSet filtered="true" packaged="true">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+</archetype-descriptor>
++---
+
+ This example above shows:
+
+ * the archetype name is <<<basic>>>
+
+ * the archetype defines a single fileset:
+
+ * the fileset will take all the files in archetype-resources/src/main/java
+ that match the <<<**/*.java>>> pattern
+
+ * the selected files will be generated using the velocity engine
+ (<<<filtered=true>>>)
+
+ * the files will be generated in the src/main/java directory of the
+ generated project in the same directory as in the jar file, but with
+ that directory prepended by the package property.
+
+ []
+
+ []
+
+
+ * Defining additional properties
+
+ The main properties that are used by the velocity engine during project's file generation are groupId, artifactId, version, package.
+
+ It is possible to define additionnal properties that must be valued before the file generation.
+
+ These additionnal properties can be provided with default values, which enable not to ask the user for there values.
+
+ Additionnal properties are defined in the archetype-metadata.xml file with:
+
++---
+<archetype-descriptor name="basic">
+ <requiredProperties>
+ <requiredProperty key="property-with-default">
+ <defaultValue>default-value</defaultValue>
+ </requiredProperty>
+ <requiredProperty key="property-without-default"/>
+ </requiredProperties>
+...
+</archetype-descriptor>
++---
+
+ Here two additionnal properties are defined: <<<property-without-default>>>
+ and <<<property-with-default>>>.
+
+ Be aware that the property keys can not contain any dot as there are
+ velocity properties.
+
+
+* Defining specific filesets
+
+ The filesets contained in the archetype-metadata.xml file defines the way
+ the project's files located in the jar file are used by the Archetype Plugin
+ to generate a project.
+
+ Filesets must define the directory where the files will be searched for
+ which is also the directory where the project's files will be generated.
+ The first is the directory inside the archetype jar file, the second is the
+ directory in the generated project's tree.
+
+ Filesets also defines the inclusion/exclusion of files "Ã la " ant.
+ This provide a powerfull way to describe a large set of files to be selected
+ for the generation process.
+
+ Filesets can be filtered, which means the selected files will be used
+ as Velocity templates. They can be non-filtered, which means the selected
+ files will be binary copied.
+
+ Filesets can be packaged, which means the selected files will be
+ generated/copied in a directory structure that is prepended by the package
+ property. They can be non-packaged, which means that the selected files
+ will be generated/copied without that prepend.
+
+ A fileset is defined in the archetype-metadata.xml with this fragment:
+
++---
+...
+ <fileSets>
+ <fileSet filtered="true" packaged="true">
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ <excludes>
+ <excludeAllTest.java</include>
+ </excludes>
+ </fileSet>
+ </fileSets>
+...
++---
+
+ This example shows a fileset that will select all the java files in the
+ <<<src/test/java>>> directory of the archetype resources, but the
+ <<<AllTest.java>>> file that is located at the root of this directory.
+
+ This filset also is packaged and filtered.
+
+
+* Defining multi module in the archetype metadata
+
+ Inner modules of an archetype are used to create a multi module Maven 2
+ project from a single archetype.
+
+ Modules in the archetype-metadata.xml file are defined like:
+
++---
+<archetype-descriptor name="multi-module">
+ <fileSets>
+ ...
+ </fileSets>
+ <modules>
+ <module name="SubProject" id="subproject" dir="sub-project">
+ <fileSets>
+ ...
+ </fileSets>
+ </module>
+ </modules>
+</archetype-descriptor>
++---
+
+ In the example above, the archetype <<<multi-module>>> contains a module
+ named <<<SubProject>>>. This module is located in the <<<sub-project>>>
+ directory of the archetype. It also has the artifactId <<<subproject>>>.
+
+ The attributes name, id and dir of the module are used to determine the
+ directory where togenerated that module files, they also are used to
+ determine the artifactId of the Maven 2 project corresponding to this
+ module.
+
+
+* Putting all together
+
+ The <<<requiredProperties>>> is only allowed as a child of
+ archetype-descriptor.
+
+ Modules are allowed in archetype-descriptor and in modules (no limit is
+ given).
+
+ archetype-descriptor and modules must define at least one fileset each to
+ be valid.
+
+ It is possible to define default values to main required properties by
+ defining say the groupId and giving it a default:
+
++---
+...
+ <requiredProperties>
+ <requiredProperty key="groupId">
+ <defaultValue>com.company.department</defaultValue>
+ </requiredProperty>
++---
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype-metadata.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,90 @@
+ ------
+ Archetype
+ ------
+ Raphaël Piéroni
+ ------
+ 10 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+What is an archetype?
+
+* A Maven 2 project 'en devenir'
+
+ I.e. a abstract representation of a kind of project
+ that can be instanciated into a concrete customised
+ Maven 2 project.
+
+ An archetype knows which files will be part of the
+ instanciated project and which properties to fill
+ to properly customise the project.
+
+ Each archetype defines a set of common properties:
+
+ * groupId which will be the groupId of the project
+
+ * artifactId which will be the artifactId of the project
+
+ * version which will be the version of the project
+
+ * package which will be the base package of all source files of the project
+
+ []
+
+
+
+* A jar file
+
+ The minimal content of the jar file:
+
++---
+.
+|-- META-INF
+| `-- maven
+| `-- archetype-metadata.xml [1]
+`-- archetype-resources
+ |-- ... [2]
+ `-- pom.xml [3]
++---
+
+ [[1]] The metadata file that defines:
+
+ * the default values of the common properties,
+
+ * a set of additional properties with their default values,
+
+ * a set of archetype resources;
+
+ []
+
+ [[2]] The resources files defined by the archetype metadata,
+
+ [[3]] The pom file of a Maven 2 project.
+
+ []
+
+
+* Note
+
+ The common properties should be renamed to ${target.groupId}, ...
+ to avoid name clash.
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/archetype.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/crawl-repository.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/specification/crawl-repository.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/specification/crawl-repository.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/specification/crawl-repository.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,53 @@
+ ------
+ Crawl Repository
+ ------
+ Raphaël Piéroni
+ ------
+ 10 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+How archetype lists are created?
+
+~~TODO: add content
+
++---
+
+Component that parse an FS repositoryÂ
+
+
+
+ for each artifact **/*.pom and for each associated jar
+
+ check the presence of metadata descriptor
+
+ and add it in the xml descriptor
+
+
+
+ in : repository directory, desired repository URL (may be local)
+
+ out : ArchetypeCatalog
+
+
++---
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/crawl-repository.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/create-from-project.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/specification/create-from-project.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/specification/create-from-project.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/specification/create-from-project.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,100 @@
+ ------
+ Create an Archetype from a Project
+ ------
+ Raphaël Piéroni
+ ------
+ 10 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+What is done during the creation of an archetype?
+
+~~TODO: add content
+
++---
+
+How to create an archetype?
+ The simple way:
+
+ mvn archetype:createFromProject
+ Configuring the plugin
+ -Darchetype.languages
+ -Darchetype.filteredExtensions
+ -Darchetype.phase=(package|install|deploy)
+ -Dpackage
+ -Darchetype.propertyFile
+ configuring the post generation goals and their associated properties
+ should be possible to configure the most of the plugin using a property file for automation
+ Beeing behind a proxy is automatically configured by Maven
+ Actual configuration
+
+ @parameter default-value="false" boolean interactive;
+
+ @parameter expression="${archetype.filteredExtentions}" String archetypeFilteredExtentions;
+
+ @parameter expression="${archetype.languages}" String archetypeLanguages;
+
+ @parameter expression="${user.home}/.m2/archetype.xml" File archetypeRegistryFile;
+
+ @parameter default-value="UTF-8" expression="${archetype.encoding}" String defaultEncoding;
+
+ @parameter expression="${archetype.ignoreReplica}" boolean ignoreReplica = true;
+
+ @parameter expression="${archetype.partialArchetype}" boolean partialArchetype = false;
+
+ @parameter expression="${archetype.preserveCData}" boolean preserveCData = false;
+
+ @parameter expression="${localRepository}" ArtifactRepository localRepository;
+
+ @parameter expression="${archetype.keepParent}" boolean keepParent = true;
+
+ @parameter expression="${project}" MavenProject project;
+
+ @parameter default-value="target/archetype.properties" expression="${archetype.properties}" File propertyFile;
+
+ @parameter expression="${basedir}/target" File outputDirectory;
+
+ @parameter expression="${testMode}" boolean testMode;
+
++---
+
++---
+3 ways to call cfp:
+ basic way: create the archetype from project in target/generated-sources/archetype/
+ and package archetype jar in target/
+ install way: same as basic plus copy the archetype jar in local repository
+ and update the local catalog
+ deploy way: same as install plus deploy the archetype jar in known deployment repository
+ and update the known deployment repository catalog
+ updating a local catalog:
+load the local catalog and construct a catalog
+ if the archetype is not in local catalog
+ => add it
+ else if the archetype is newer than in local catalog
+ => change the version and repository in local
+ else there is a problem because we install an older version
+ updating a remote catalog:
+dowload the remote catalog and construct a memory catalog
+same as for the local updating
+upload the modified catalog
++---
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/create-from-project.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/generate.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/specification/generate.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/specification/generate.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/specification/generate.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,108 @@
+ ------
+ Create a Project from an Archetype
+ ------
+ Raphaël Piéroni
+ ------
+ 10 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+What is done during the creation of a project?
+
+* Archetype selection
+
+ First the Archetype Plugin ask the user to select an archetype from a list
+ of known archetypes. Archetypes are known using archetype catalogs.
+
+* Archetype configuration
+
+ Then the Archetype Plugin ask the user to provide values for each of the
+ four main required properties. Which are the project's groupId, artifactId,
+ version and package.
+
+ It also ask for values of the additional required properties defined in the
+ archetype's metadata file.
+
+* Project generation
+
+ Finally, the Archetype Plugin generates the Maven 2 project from the
+ selected/configured archetype.
+
+ The archetype used to generate the project can be mono or multi module.
+
+ The archetype used to generate the project can be partial, which means it
+ enhance an existing project instead of creating a new one.
+
+ If the Archetype Plugin is called from an existing project, using an
+ complete (not partial) archetype, then it generates a sub module in the
+ existing project.
+
+* Batch mode
+
+ It is possible to call the Archetype Plugin to generate project in batch
+ mode (to get rid of the prompting). This is achieved by providing the
+ Archetype Plugin with all the needed values as system properties.
+
+ * <<<archetypeCatalog>>> which defaults to internal specifies the catalog(s)
+ The valid catalogs are: internal (the default), local, remote, file://path, http://url.
+
+ * <<<internal>>> uses an internal catalog
+
+ * <<<local>>> uses the ~/.m2/archetype-catalog.xml file
+
+ * <<<remote>>> uses the http://repo1.maven.org/maven2/archetype-catalog.xml
+ file
+
+ * <<<file://path>>> uses the catalog file defined by path (or the
+ archetype-catalog.xml file located in path directory)
+
+ * <<<http://url>>> uses the catalog file defined by url (or the
+ archetype-catalog.xml file located in url web directory)
+
+ []
+
+ * <<<archetypeGroupId>>> specifies the groupId of the archetype to use
+
+ * <<<archetypeArtifactId>>> specifies the artifactId of the archetype to use
+
+ * <<<archetypeVersion>>> specifies the version of the archetype to use
+
+ * <<<archetypeRepository>>> specifies the repository in which the archetype
+ reside
+
+ * <<<groupId>>> specifies the groupId of the generated project
+
+ * <<<artifactId>>> specifies the artifactId of the generated project
+
+ * <<<version>>> specifies the version of the generated project
+
+ * <<<package>>> specifies the package for the sources of the generated
+ project
+
+ * <<<anotherVelocityProperty>>> specifies any other required property
+
+ []
+
+* Behind a Proxy
+
+ Beeing behind a proxy is automatically configured by Maven
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/generate.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/specification.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/specification/specification.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/specification/specification.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/specification/specification.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,49 @@
+ ------
+ Specification
+ ------
+ Raphaël Piéroni
+ ------
+ 10 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+Specification
+
+ The Specification of the Archetype Plugin aims to answer to the following
+ questions:
+
+ * {{{archetype.html}What is an archetype?}}
+
+ * {{{archetype-metadata.html}How metadata on an archetype is stored?}}
+
+ * {{{generate.html}What is done during the creation of a project?}}
+
+ * {{{archetype-catalog.html}How the Archetype Plugin know about archetype?}}
+
+~~ * {{{create-from-project.html}What is done during the creation of an archetype?}}
+~~
+~~ * {{{update-catalog.html}How the Archetype Plugin know about new archetypes?}}
+~~
+~~ * {{{crawl-repository.html}How archetype lists are created?}}
+
+ []
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/specification.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/update-catalog.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/specification/update-catalog.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/specification/update-catalog.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/specification/update-catalog.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,131 @@
+ ------
+ Update local and remote Catalog
+ ------
+ Raphaël Piéroni
+ ------
+ 10 February 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+How the Archetype Plugin know about new archetypes?
+
+~~TODO: add content
++---
+Creation/Deployment behaviour
+ 5. archetype developer using local version
+
+
+
+ archetype created using archetpe:create-from-project -Darchetype.phase=install
+
+ the newly created archetype is copied in teh local repository
+
+ and the archetype-catalog.xml file located at the root of the repository is updated with the archetype information
+
+
+
+ when using in archetype:create -Darchetype.catalog=local
+
+ the archetype must be specified using -Darchetype.groupId, -Darchetype.artifactId
+
+ only the local repository is used and the LATEST version in it is used
+
+ or selected with -Darchetype.selectVersion
+
+ or specified with -Darchetype.version
+ configuration behaviour
+
+ returns an incomplete creation request
+ determine archetype's groupId, artifactId, version
+
+ -> defaults to resolve, overriden by property file, overriden by -D
+
+ resolve package using (-Dlanguages languages can be found in property file instead)
+
+ -> defaults to resolve, overriden by property file, overriden by -D
+
+ determine additional properties
+
+ -> ask if interactive, overridden by property file only
+ creation behaviour
+
+ post creation goals (package/install/deploy)
+ determine filesets using:
+
+ -> package, languages, filtereds, multi-module
+
+ determine pom rewriting using:
+
+ -> keepParent, addtional properties
+
+ create archetype files using:
+
+ -> package, common properties, additional properties
+
+ create archetype's metadata file
+
+ create archetype's pom using
+
+ -> archetype's id, copying devs, licnese, ... AND deploymentManagement
+ 6. archetype developer deployment the archetype
+
+
+
+ archetype create using archetype:create-from-project -Darchetype.phase=deploy
+
+
+
+ the deployment url used is taken from the initial project
+
+ credentials are automatically configured by Maven
+
+ the catalog file is located at the root of the repository URL and is named archetype-catalog.xml
+
+
+
+ the deployment url and credentials could be overrided to use staging repositories, but how?
+
+
+
+ proxies are automatically configured by Maven
+
+
+
+ synchronisation between repositories of catalog files is easy as they don't define any repository URL
+ deployment credentials:
+ initialPom.deploymentManagement
+
+ -> remote URL or remote snapshot URL
+
+ settings.servers
+ deployment artifact:
+ initialPom.groupId or archetype.groupId in property file or in -D
+
+ initialPom.artifactId +'-archetype' or archetype.artifactId in property file or in -D
+
+ initialPom.version or archetype.version in property file or in -D
+ deployment metadata:
+ deploy vesions metadata as any artifact
+
+ use deploymentManagement to update remote catalog
++---
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/specification/update-catalog.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/apt/usage.apt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/apt/usage.apt?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/apt/usage.apt (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/apt/usage.apt Mon Feb 25 15:07:10 2008
@@ -0,0 +1,172 @@
+ ------
+ Usage
+ ------
+ Raphaël Piéroni
+ ------
+ 25 January 2008
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+Projet creation
+
+ Creating a project from an archetype involves three steps:
+
+ * the selection of the archetype,
+
+ * the configuration of that archetype,
+
+ * the effective creation of the project from the collected information.
+
+ []
+
+Usage
+
+ Calling <<<archetype:generate>>> the plugin will first ask to choose
+ the archetype from the internal catalog. Just enter the number of the archetype.
+
+ It then ask to enter the values for the groupId, the artifactId
+ and the version of the project to create and the basic package
+ for the sources.
+
+ It then ask for the confirmation of the configuration and perform
+ the creation of the project.
+
+ In the following example, we selected the quickstart archetype (numbered 15)
+ and set <<<groupId>>> to <<<com.company>>>, <<<artifactId>>> to <<<project>>>,
+ <<<version>>> to <<<1.0>>> and <<<package>>> to <<<com.company.project>>>.
+
++---
+$ mvn archetype:generate
+[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: 'archetype'.
+[INFO] ------------------------------------------------------------------------
+[INFO] Building Maven Default Project
+[INFO] task-segment: [archetype:create] (aggregator-style)
+[INFO] ------------------------------------------------------------------------
+[INFO] Preparing archetype:generate
+[INFO] No goals needed for project - skipping
+[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
+[INFO] Setting property: velocimacro.messages.on => 'false'.
+[INFO] Setting property: resource.loader => 'classpath'.
+[INFO] Setting property: resource.manager.logwhenfound => 'false'.
+[INFO] [archetype:generate]
+Choose archetype:
+1: internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)
+2: internal -> appfuse-basic-spring (AppFuse archetype for creating a web application with Hibernate, Spring and Spring MVC)
+3: internal -> appfuse-basic-struts (AppFuse archetype for creating a web application with Hibernate, Spring and Struts 2)
+4: internal -> appfuse-basic-tapestry (AppFuse archetype for creating a web application with Hibernate, Spring and Tapestry 4)
+5: internal -> appfuse-core (AppFuse archetype for creating a jar application with Hibernate and Spring and XFire)
+6: internal -> appfuse-modular-jsf (AppFuse archetype for creating a modular application with Hibernate, Spring and JSF)
+7: internal -> appfuse-modular-spring (AppFuse archetype for creating a modular application with Hibernate, Spring and Spring MVC)
+8: internal -> appfuse-modular-struts (AppFuse archetype for creating a modular application with Hibernate, Spring and Struts 2)
+9: internal -> appfuse-modular-tapestry (AppFuse archetype for creating a modular application with Hibernate, Spring and Tapestry 4)
+10: internal -> maven-archetype-j2ee-simple (A simple J2EE Java application)
+11: internal -> maven-archetype-marmalade-mojo (A Maven plugin development project using marmalade)
+12: internal -> maven-archetype-mojo (A Maven Java plugin development project)
+13: internal -> maven-archetype-portlet (A simple portlet application)
+14: internal -> maven-archetype-profiles ()
+15: internal -> maven-archetype-quickstart ()
+16: internal -> maven-archetype-site-simple (A simple site generation project)
+17: internal -> maven-archetype-site (A more complex site project)
+18: internal -> maven-archetype-webapp (A simple Java web application)
+19: internal -> struts2-archetype-starter (A starter Struts 2 application with Sitemesh, DWR, and Spring)
+20: internal -> struts2-archetype-blank (A minimal Struts 2 application)
+21: internal -> struts2-archetype-portlet (A minimal Struts 2 application that can be deployed as a portlet)
+22: internal -> struts2-archetype-dbportlet (A starter Struts 2 portlet that demonstrates a simple CRUD interface with db backing)
+23: internal -> struts2-archetype-plugin (A Struts 2 plugin)
+24: internal -> shale-archetype-blank (A blank Shale web application with JSF)
+25: internal -> maven-adf-archetype (Archetype to ease the burden of creating a new application based with ADF)
+26: internal -> data-app (A new Databinder application with sources and resources.)
+27: internal -> jini-service-archetype (Archetype for Jini service project creation)
+28: internal -> softeu-archetype-seam (JSF+Facelets+Seam Archetype)
+29: internal -> softeu-archetype-seam-simple (JSF+Facelets+Seam (no persistence) Archetype)
+30: internal -> softeu-archetype-jsf (JSF+Facelets Archetype)
+31: internal -> jpa-maven-archetype (JPA application)
+32: internal -> spring-osgi-bundle-archetype (Spring-OSGi archetype)
+33: internal -> confluence-plugin-archetype (Atlassian Confluence plugin archetype)
+34: internal -> maven-archetype-har (Hibernate Archive)
+35: internal -> maven-archetype-sar (JBoss Service Archive)
+36: internal -> wicket-archetype-quickstart (A simple Apache Wicket project)
+Choose a number: (1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36): 15
+[INFO] artifact org.apache.maven.archetypes:maven-archetype-quickstart: checking for updates from maven-archetype-quickstart-repo
+Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.0/maven-archetype-quickstart-1.0.jar
+4K downloaded
+Define value for groupId: : com.company
+Define value for artifactId: : project
+Define value for version: : 1.0
+Define value for package: : com.company.project
+Confirm properties configuration:
+groupId: com.company
+artifactId: project
+version: 1.0
+package: com.company.project
+ Y: :
+[INFO] ----------------------------------------------------------------------------
+[INFO] Using following parameters for creating OldArchetype: maven-archetype-quickstart:RELEASE
+[INFO] ----------------------------------------------------------------------------
+[INFO] Parameter: groupId, Value: com.company
+[INFO] Parameter: packageName, Value: com.company.project
+[INFO] Parameter: package, Value: com.company.project
+[INFO] Parameter: artifactId, Value: project
+[INFO] Parameter: basedir, Value: /home/local/rafale/projects/tmp
+[INFO] Parameter: version, Value: 1.0
+[INFO] ********************* End of debug info from resources from generated POM ***********************
+[INFO] OldArchetype created in dir: /home/local/rafale/projects/tmp/project
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 54 seconds
+[INFO] Finished at: Fri Jan 25 23:01:01 GMT 2008
+[INFO] Final Memory: 10M/25M
+[INFO] ------------------------------------------------------------------------
++---
+
+ Here's the resulting tree of the created project
+
++---
+$ tree project
+project
+|-- pom.xml
+`-- src
+ |-- main
+ | `-- java
+ | `-- com
+ | `-- company
+ | `-- project
+ | `-- App.java
+ `-- test
+ `-- java
+ `-- com
+ `-- company
+ `-- project
+ `-- AppTest.java
+
+11 directories, 3 files
++---
+
+Backward compatibility
+
+ For backward compatibility with the Archetype Plugin version 1.0-alpha-7,
+ we keeped the old create goal which can be called using
+ <<<mvn archetype:create>>>. See {{{#}the old documentation}} for further
+ reading.
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-plugin/src/site/apt/usage.apt
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/archetype/trunk/archetype-plugin/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/site/site.xml?rev=631032&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/site/site.xml (added)
+++ maven/archetype/trunk/archetype-plugin/src/site/site.xml Mon Feb 25 15:07:10 2008
@@ -0,0 +1,83 @@
+<?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.
+ */
+ -->
+ <project name="Maven Archetype Plugin">
+ <bannerLeft>
+ <name>Maven Archetype Plugin</name>
+ <src>http://maven.apache.org/images/apache-maven-project-2.png</src>
+ <href>http://maven.apache.org/</href>
+ </bannerLeft>
+ <bannerRight>
+ <src>http://maven.apache.org/images/maven-logo-2.gif</src>
+ </bannerRight>
+ <skin>
+ <groupId>org.apache.maven.skins</groupId>
+ <artifactId>maven-stylus-skin</artifactId>
+ </skin>
+ <publishDate format="dd MMM yyyy" position="left" />
+ <version position="left" />
+ <body>
+ <links>
+ <item name="Apache" href="http://www.apache.org/"/>
+ <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x"/>
+ <item name="Maven 2.x" href="http://maven.apache.org/"/>
+ <item name="Maven 2.x Plugins" href="http://maven.apache.org/plugins/"/>
+ <item name="Continuum" href="http://maven.apache.org/continuum"/>
+ <item name="SCM" href="http://maven.apache.org/scm"/>
+ <item name="Wagon" href="http://maven.apache.org/wagon"/>
+ <item name="JXR" href="http://maven.apache.org/jxr"/>
+ <item name="Doxia" href="http://maven.apache.org/doxia"/>
+ </links>
+
+ <menu name="Overview">
+ <item name="Introduction" href="/index.html"/>
+ <item name="Usage" href="/usage.html"/>
+ <item name="Advanced Usage" href="/advanced-usage.html"/>
+ <item name="Goals" href="/plugin-info.html"/>
+ <!--item name="FAQ" href="faq.html"/-->
+ <item name="Specification" href="/specification/specification.html"/>
+ </menu>
+
+ <!--menu name="Examples">
+ <item name="Specifying the Remote Repositories" href="/examples/remote-repositories.html"/>
+ <item name="Creating a Simple Java Application" href="/examples/simple.html"/>
+ <item name="Creating a Site" href="/examples/site.html"/>
+ <item name="Creating a Simple j2ee Project" href="/examples/j2ee-simple.html"/>
+ <item name="Creating a Webapp" href="/examples/webapp.html"/>
+ <item name="Creating a Portlet" href="/examples/portlet.html"/>
+ <item name="Creating a Mojo" href="/examples/mojo.html"/>
+ <item name="Creating your own Archetype" href="/examples/archetype.html"/>
+ </menu-->
+
+ <!--menu name="Specification">
+ <item name="Introduction to archetype plugin" href="./main.html"/>
+ <item name="What are archetypes ?" href="./archetypes.html"/>
+ <item name="Project Generation" href="./generation.html"/>
+ <item name="Archetype Creation" href="./creation.html"/>
+ <item name="Handcrafting archetypes" href="./archetype-handcraft.html"/>
+ <item name="Mojos of the plugin" href="./mojos.html"/>
+ <item name="Desing of the archetype plugin" href="./design.html"/>
+ </menu-->
+
+ <menu ref="reports"/>
+ </body>
+</project>
Propchange: maven/archetype/trunk/archetype-plugin/src/site/site.xml
------------------------------------------------------------------------------
svn:eol-style = native