You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/08/29 04:43:59 UTC
svn commit: r570618 [14/14] - in /maven/sandbox/trunk/archetypeng: ./
archetype-common/ archetype-common/src/ archetype-common/src/main/
archetype-common/src/main/java/ archetype-common/src/main/java/org/
archetype-common/src/main/java/org/apache/ arch...
Added: maven/sandbox/trunk/archetypeng/src/site/apt/archetypes.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/src/site/apt/archetypes.apt?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/src/site/apt/archetypes.apt (added)
+++ maven/sandbox/trunk/archetypeng/src/site/apt/archetypes.apt Tue Aug 28 19:43:33 2007
@@ -0,0 +1,39 @@
+ -----
+ Archetypeng - Archetypes
+ -----
+ The Maven Team
+ -----
+
+Archetypes
+
+ An archetype is a {{{#Descriptor}descriptor}} and a set of
+ {{{#Templates}templates}}. There is two kind of archetypes: complete and
+ partial.
+
+ A complete archetype represents a Maven 2 project with complete features.
+ Eg. a class library, a desktop application, a web application.
+
+ A partial archetype represents an added feature to an existing Maven 2
+ project. Eg. using modello, using jetty.
+
+ The archetype is packaged in a jar file.
+
+ Archetypes can be created using the {{{creation.html}creation}} mecanism or
+ can be {{{archetype-handcraft.html}handcrafted}}.
+
+* {Descriptor}
+
+ The archetype descriptor is an xml file defining:
+
+ * the archetype name,
+
+ * the properties needed by the templates,
+
+ * the templates used to generate the project sorted by categories.
+
+ []
+
+* {Templates}
+
+ The templates are velocity template files. They are used to generate the
+ sources of the project.
Added: maven/sandbox/trunk/archetypeng/src/site/apt/creation.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/src/site/apt/creation.apt?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/src/site/apt/creation.apt (added)
+++ maven/sandbox/trunk/archetypeng/src/site/apt/creation.apt Tue Aug 28 19:43:33 2007
@@ -0,0 +1,256 @@
+ -----
+ Archetypeng - Creation
+ -----
+ The Maven Team
+ -----
+
+Creation
+
+ Creating an archetype from a project involves two steps:
+
+ * the configuration of the archetype
+
+ * and the effective creation based on the collected information.
+
+ []
+
+ At the end of these steps, you have a Maven 2 archetype created in the
+ target/generated-sources/archetypeng directory.
+
+ It is possible to use the generation plugin in {{{#Batch}batch}} mode.
+
+* Archetype configuration
+
+ During this step, you are successivly prompted to:
+
+ * define the archetype's groupId, artifactId and version,
+
+ * define the common properties' values (used for reverse templating),
+
+ * define the archetype's properties and values (used for reverse templating),
+
+ * confirm the configuration.
+
+ []
+
+ A properety file containing the archetype definition and the archetype's
+ properties is written at the end of this step.
+
+ The packageName property provides a default value of the guessed package of
+ the project based on the packages of the project's sources.
+
+* Archetype creation
+
+ During this step, the plugin creates a Maven 2 archetype based on the
+ project's sources and pom and on the configuration collected.
+
+
+* Example of use
+
+ To create an archetype, call <mvn archetypeng:create-from-project>.
+
+
++--
+[rafale@fixe test-start]$ tree
+.
+|-- pom.xml
+`-- src
+ |-- main
+ | `-- java
+ | `-- org
+ | `-- codehaus
+ | `-- mojo
+ | `-- archetypeng
+ | `-- test
+ | `-- start
+ | `-- App.java
+ `-- test
+ `-- java
+ `-- org
+ `-- codehaus
+ `-- mojo
+ `-- archetypeng
+ `-- test
+ `-- start
+ `-- AppTest.java
+
+17 directories, 3 files
++--
+
+ Here is a sample project (the one generated by the
+ {{{generation.html}generation}} :-)).
+
++--
+[rafale@fixe test-start]$ mvn archetypeng:create-from-project
+[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: 'archetypeng'.
+[INFO] artifact org.codehaus.mojo:maven-archetypeng-plugin: checking for updates from central
+[INFO] ----------------------------------------------------------------------------
+[INFO] Building test-start
+[INFO] task-segment: [archetypeng:create-from-project]
+[INFO] ----------------------------------------------------------------------------
+[INFO] Preparing archetypeng:create-from-project
++--
+
+ The first step of the creation: <configure-creation>
+
++--
+[INFO] [archetypeng:configure-creation]
+Define value for archetype.groupId: org.codehaus.mojo.archetypeng.test: :
+Define value for archetype.artifactId: test-start-archetype: :
+Define value for archetype.version: 1.0-SNAPSHOT: :
+Define value for groupId: org.codehaus.mojo.archetypeng.test: :
+Define value for artifactId: test-start: :
+Define value for version: 1.0-SNAPSHOT: :
++--
+
+ Archetype definition (archetype.*) and common properties are defined using
+ the proposed default values.
+
++--
+Add a new custom property Y: : Y
+Define property key: aProperty
+Define value for aProperty: : String searched in the sources
+Add a new custom property Y: : N
++--
+
+ A custom property is added to the project creation.
+
++--
+Confirm archetype configuration:
+archetype.groupId: org.codehaus.mojo.archetypeng.test
+archetype.artifactId: test-start-archetype
+archetype.version: 1.0-SNAPSHOT
+package: org.codehaus.mojo.archetypeng.test.start
+version: 1.0-SNAPSHOT
+groupId: org.codehaus.mojo.archetypeng.test
+aProperty: String searched in the sources
+artifactId: test-start
+ Y: : Y
++--
+
+ The archetype configuration is confirmed.
+
++--
+[INFO] [archetypeng:create-archetype]
++--
+
+ The second step do the work without any comment.
+
++--
+[INFO] [archetypeng:create-from-project]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 29 seconds
+[INFO] Finished at: Mon Mar 12 19:09:52 CET 2007
+[INFO] Final Memory: 10M/24M
+[INFO] ------------------------------------------------------------------------
++--
+
+ The resuting project is created in the target directory.
+
++--
+[rafale@fixe test-start]$ tree target/generated-sources/archetypeng
+target/generated-sources/archetypeng
+|-- pom.xml
+`-- src
+ `-- main
+ `-- resources
+ |-- META-INF
+ | `-- maven
+ | `-- archetype.xml
+ `-- archetype-resources
+ |-- pom.xml
+ `-- src
+ |-- main
+ | `-- java
+ | `-- App.java
+ `-- test
+ `-- java
+ `-- AppTest.java
+
+11 directories, 5 files
++--
+
+* {Batch} mode
+
+ To enable the batch mode and remove the prompts, just run
+ <mvn archetypeng:create-from-project -B>.
+
+ The batch mode wiil need the same answers as the interactive mode. These
+ answers are provided in a property file named archetype.properties in the
+ execution directory or set using the command line property
+ <-Darchetype.properties=path/to/archetype.properties>.
+
+ Here is an example of archetype.properties file (the one generated by the
+ interactive creation :-)).
+
++--
+[rafale@fixe test-start]$ cat archetype.properties
+#
+#Mon Mar 12 19:09:51 CET 2007
+version=1.0-SNAPSHOT
+package=org.codehaus.mojo.archetypeng.test.start
+archetype.groupId=org.codehaus.mojo.archetypeng.test
+archetype.artifactId=test-start-archetype
+groupId=org.codehaus.mojo.archetypeng.test
+artifactId=test-start
+archetype.version=1.0-SNAPSHOT
++--
+
+ Here is the plugin execution.
+
++--
+[rafale@fixe test-start]$ tree
+.
+|-- archetype.properties
+|-- pom.xml
+`-- src
+ |-- main
+ | `-- java
+ | `-- org
+ | `-- codehaus
+ | `-- mojo
+ | `-- archetypeng
+ | `-- test
+ | `-- start
+ | `-- App.java
+ `-- test
+ `-- java
+ `-- org
+ `-- codehaus
+ `-- mojo
+ `-- archetypeng
+ `-- test
+ `-- start
+ `-- AppTest.java
+
+17 directories, 4 files
++--
+
+ Ensure the property file exists.
+
++--
+[rafale@fixe test-start]$ mvn archetypeng:create-from-project -B
+[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: 'archetypeng'.
+[INFO] artifact org.codehaus.mojo:maven-archetypeng-plugin: checking for updates from central
+[INFO] ----------------------------------------------------------------------------
+[INFO] Building test-start
+[INFO] task-segment: [archetypeng:create-from-project]
+[INFO] ----------------------------------------------------------------------------
+[INFO] Preparing archetypeng:create-from-project
+[INFO] [archetypeng:configure-creation]
+[INFO] [archetypeng:create-archetype]
+[INFO] [archetypeng:create-from-project]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 16 seconds
+[INFO] Finished at: Mon Mar 12 19:13:22 CET 2007
+[INFO] Final Memory: 10M/24M
+[INFO] ------------------------------------------------------------------------
++--
+
+ The project tree is the same as in the interactive mode.
Added: maven/sandbox/trunk/archetypeng/src/site/apt/design.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/src/site/apt/design.apt?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/src/site/apt/design.apt (added)
+++ maven/sandbox/trunk/archetypeng/src/site/apt/design.apt Tue Aug 28 19:43:33 2007
@@ -0,0 +1,129 @@
+ -----
+ Archetypeng - Design
+ -----
+ The Maven Team
+ -----
+
+Design
+
+ The archetypeng plugin is built upon a stack.
+
+ The top most elements are the {{{mojos.html}mojos}}, among them two are
+ mojos invoking a custom lifecycle on which are binded the inner mojos.
+
+ The inner mojos calls the top most components which perform the algorithm
+ of there task and delegate some task to inner components.
+
+Mojos
+
+ The generate mojo calls select-archetype, configure-generation and
+ generate-archetype in a lifecycle.
+
+ The create mojo calls configure-creation and create-project in a lifecycle.
+
+ The clean mojo performs his task without an inner mojo nor a plexus
+ component.
+
+ The select-archetype mojo is the inner mojo which delegates its task to the
+ ArchetypeSelector plexus component.
+
+ The configure-generation mojo is the inner mojo which delegates its task to
+ the ArchetypeGenerationConfigurator plexus component.
+
+ The generate-project mojo is the inner mojo which delegates its task to the
+ ArchetypeGenerator plexus component.
+
+ The configure-creation mojo is the inner mojo which delegates its task to
+ the ArchetypeCreationConfigurator plexus component.
+
+ The create-archetype mojo is the inner mojo which delegates its task to the
+ ArchetypeCreator plexus component.
+
+Main components
+
+ The main plexus components of the plugin are the components dirrectly called
+ by the mojos.
+
+ They are ArchetypeSelector, ArchetypeGenerationConfigurator,
+ ArchetypeGenerator, ArchetypeCreationConfigurator, ArchetypeCreator.
+
+ The ArchetypeSelector component perform the algorithm of the selection step
+ in the project generation.
+ To performs this task, it uses the ArchetypeArtifactManager,
+ ArchetypeFactory, ArchetypePropertiesManager, ArchetypeRegistryManager,
+ ArchetypeSelectionQueryer components.
+
+ The ArchetypeGenerationConfigurator component performs the algorithm of the
+ configuration step in the project generation.
+ To perform this task, it uses the ArchetypeArtifactManager,
+ ArchetypeFactory, ArchetypeGenerationQueryer, ArchetypePropertiesManager
+ components.
+
+ The ArchetypeGenerator component performs the algorithm of the generation
+ step in the project generation.
+ To perform this task, it uses the ArchetypeArtifactManager,
+ ArchetypeFactory, ArchetypePathResolver, ArchetypePropertiesManager,
+ PomManager, VelocityComponent components.
+
+ The ArchetypeCreationConfigurator component performs the algorithm of the
+ configuration step of the archetype creation.
+ To perfom this task, it uses the ArchetypeCreationQueryer, ArchetypeFactory,
+ ArchetypePropertiesManager, ArchetypeTemplateResolver components.
+
+ The ArchetypeCreator component performs the algorithm of the creation step
+ in the archetype creation.
+ to perfom this task, it uses the ArchetypeFactory, ArchetypePathResolver,
+ ArchetypePropertiesManager, ArchetypeTemplateResolver, PomManager
+ components.
+
+Queryer components
+
+ This kind of component is the one in charge with the interaction with the
+ user during the selection and configuration steps of the generation and
+ during the configuration step of the creation.
+
+ The ArchetypeSelectionQueryer component asks all the questions of the
+ selection step of the generation.
+ It asks to select the group, the archetype, the version and to confirm the
+ selection.
+
+ The ArchetypeGenerationQueryer component asks all the questions of the
+ configuration step of the selection.
+ It asks to provide a value for a property and to confirm the configuration.
+
+ The ArchetypeCreationQueryer component asks all the questions of the
+ configuration step of the creation.
+ Its asks to provide values for the archetype definition (3 questions), to
+ provide values for the common properties (4 questions), to provide the
+ keys and values for a specific property (2 question), if a new specific
+ property is desired and to confirm the configuration.
+
+Common components.
+
+ They are components which provides usefull method helping the main component
+ to perform their tasks.
+
+ The ArchetypeArtifactManager component performs all the interaction with the
+ repositories and gives the descriptor and classloader from which the
+ generation reads the templates.
+
+ ArchetypeFactory component construct the ArchetypeDefinition and the
+ ArchetypeConfiguration objects.
+
+ ArchetypePathResolver component resolves the pathes of the templates in the
+ archetype archive, the pathes of the generated project files.
+
+ ArchetypePropertiesManager component performs the actions which use the
+ archetype.properties file.
+
+ ArchetypeRegistryManager component performs the actions which interact with
+ the registry file (located in ~/.m2/archetype.xml). That file holds the
+ archetypeGroup list.
+
+ ArchetypeTemplateResolver component find the potential templates in a
+ directory, sort the templates in site sources or resources, resolve a common
+ package from a list of sources templates.
+
+ PomManager components perfroms the actions of reading and writing pom files
+ and modify the poms by adding modules, adding parent or merging two poms.
+
Added: maven/sandbox/trunk/archetypeng/src/site/apt/generation.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/src/site/apt/generation.apt?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/src/site/apt/generation.apt (added)
+++ maven/sandbox/trunk/archetypeng/src/site/apt/generation.apt Tue Aug 28 19:43:33 2007
@@ -0,0 +1,281 @@
+ -----
+ Archetypeng - Generation
+ -----
+ The Maven Team
+ -----
+
+Generation
+
+ Generating a project from an archetype involves three steps:
+
+ * the selection of the archetype,
+
+ * the configuration of that archetype,
+
+ * the effective generation of the project based on the collected information.
+
+ []
+
+ At the end of these steps, you have a Maven 2 project generated in a
+ defined directory.
+
+ It is possible to use the generation plugin in {{{#Batch}batch}} mode.
+
+* Archetype selection
+
+ During this step, you are successivly prompted to:
+
+ * select the group the archetype belongs to,
+
+ * select the archetype you want to use,
+
+ * select the version of that archetype,
+
+ * confirm the selection.
+
+ []
+
+ A property file containing the archetype definition is written at the end of
+ this step.
+
+ The list of archetypes and versions are retrieved from the Maven
+ repositories. The list of groups is retrieved using default values and a
+ registry file.
+
+* Archetype configuration
+
+ During this step, you are successivly prompted to:
+
+ * define each of the common properties (project's groupId, artifactId,
+ version and packageName),
+
+ * define each of the archetype required properties,
+
+ * confirm the configuration.
+
+ []
+
+ The property file containing the archetype definition is enhanced with the
+ configuration at the end of this step.
+
+* Project generation
+
+ During this step, the plugin generates the project based on the archetype
+ choosen and the configuration defined.
+
+* Example of use
+
+ To generate a project, call <mvn archetypeng:create>.
+
++--
+[rafale@fixe test]$ tree
+.
+
+0 directories, 0 files
++--
+
+ Ensuring an empty directory.
+
++--
+[rafale@fixe test]$ mvn archetypeng:create
+[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: 'archetypeng'.
+[INFO] artifact org.codehaus.mojo:maven-archetypeng-plugin: checking for updates from central
+[INFO] ----------------------------------------------------------------------------
+[INFO] Building Maven Default Project
+[INFO] task-segment: [archetypeng:create] (aggregator-style)
+[INFO] ----------------------------------------------------------------------------
+[INFO] Preparing archetypeng:create
+[INFO] [archetypeng:select-archetype]
++--
+
+ The first step of the generation: <select-archetype>
+
++--
+Choose group:
+1: org.apache.maven.archetypes
+2: org.codehaus.mojo.archetypes
+Choose a number: (1/2): 2
++--
+
+ The <org.codehaus.mojo.archetypes> group is choosen.
+
++--
+[INFO] org.codehaus.mojo.archetypes: checking for updates from central
+Choose archetype:
+1: Starting Archetype (org.codehaus.mojo.archetypes:maven-archetypeng-start)
+2: Archetype Archetype (org.codehaus.mojo.archetypes:maven-archetypeng-archetype)
+3: Plugin Archetype (org.codehaus.mojo.archetypes:maven-archetypeng-maven-plugin)
+4: Site Archetype (org.codehaus.mojo.archetypes:maven-archetypeng-site)
+Choose a number: (1/2/3/4): 1
++--
+
+ The <Starting Archetype> is choosen
+
++--
+[INFO] org.codehaus.mojo.archetypes.maven-archetypeng-start: checking for updates from central
+Choose version:
+1: 1.0-SNAPSHOT
+Choose a number: (1): 1
++--
+
+ The <1.0-SNAPSHOT> version is choosen.
+
++--
+Confirm archetype selection:
+org.codehaus.mojo.archetypes/Starting Archetype
+ (Y/N) Y: : Y
++--
+
+ The selection is confirmed.
+
++--
+[INFO] [archetypeng:configure-generation]
++--
+
+ The second step of the generation: <configure-generation>
+
++--
+Define value for groupId: : org.codehaus.mojo.archetypeng.test
+Define value for artifactId: : test-start
+Define value for version: : 1.0-SNAPSHOT
+Define value for package: : org.codehaus.mojo.archetypeng.test.start
++--
+
+ Each of the common properties are answered.
+
++--
+Confirm properties configuration:
+groupId: org.codehaus.mojo.archetypeng.test
+artifactId: test-start
+version: 1.0-SNAPSHOT
+package: org.codehaus.mojo.archetypeng.test.start
+ Y: : Y
++--
+
+ The archetype configuration is confirmed.
+
++--
+[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'.
++--
+
+ The third step loads velocity.
+
++--
+[INFO] [archetypeng:generate-project]
++--
+
+ The third step do the work without any comment.
+
++--
+[INFO] [archetypeng:create]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 2 minutes 8 seconds
+[INFO] Finished at: Sun Mar 11 22:11:28 CET 2007
+[INFO] Final Memory: 10M/25M
+[INFO] ------------------------------------------------------------------------
++--
+
+ The resuting project is generated in a directory named with the artifactId
+ property answered.
+
++--
+[rafale@fixe test]$ tree
+archetype.properties test-start/
+[rafale@fixe test]$ tree test-start
+test-start
+|-- pom.xml
+`-- src
+ |-- main
+ | `-- java
+ | `-- org
+ | `-- codehaus
+ | `-- mojo
+ | `-- archetypeng
+ | `-- test
+ | `-- start
+ | `-- App.java
+ `-- test
+ `-- java
+ `-- org
+ `-- codehaus
+ `-- mojo
+ `-- archetypeng
+ `-- test
+ `-- start
+ `-- AppTest.java
+
+17 directories, 3 files
++--
+
+* {Batch} mode
+
+ To enable the batch mode and remove the prompts, just run
+ <mvn archetypeng:generate -B>.
+
+ The batch mode wiil need the same answers as the interactive mode. These
+ answers are provided in a property file named archetype.properties in the
+ execution directory or set using the command line property
+ <-Darchetype.properties=path/to/archetype.properties>.
+
+ Here is an example of archetype.properties file (the one generated by the
+ interactive generation :-)).
+
++--
+[rafale@fixe test]$ cat archetype.properties
+#
+#Sun Mar 11 22:11:28 CET 2007
+archetype.artifactId=maven-archetypeng-start
+archetype.groupId=org.codehaus.mojo.archetypes
+archetype.version=1.0-SNAPSHOT
+groupId=org.codehaus.mojo.archetypeng.test
+artifactId=test-start
+version=1.0-SNAPSHOT
+package=org.codehaus.mojo.archetypeng.test.start
++--
+
+ Here is the plugin execution.
+
++--
+[rafale@fixe test]$ tree
+.
+`-- archetype.properties
+
+0 directories, 1 file
++--
+
+ Ensure the property file exists.
+
++--
+[rafale@fixe test]$ mvn archetypeng:create -B
+[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: 'archetypeng'.
+[INFO] ----------------------------------------------------------------------------
+[INFO] Building Maven Default Project
+[INFO] task-segment: [archetypeng:create] (aggregator-style)
+[INFO] ----------------------------------------------------------------------------
+[INFO] Preparing archetypeng:create
+[INFO] [archetypeng:select-archetype]
+[INFO] Archetype selected (org.codehaus.mojo.archetypes:maven-archetypeng-start:1.0-SNAPSHOT)
+[INFO] [archetypeng:configure-generation]
+[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] [archetypeng:generate-project]
+[INFO] [archetypeng:create]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 5 seconds
+[INFO] Finished at: Sun Mar 11 23:07:53 CET 2007
+[INFO] Final Memory: 10M/27M
+[INFO] ------------------------------------------------------------------------
++--
+
+ The project tree is the same as in the interactive mode.
Added: maven/sandbox/trunk/archetypeng/src/site/apt/main.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/src/site/apt/main.apt?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/src/site/apt/main.apt (added)
+++ maven/sandbox/trunk/archetypeng/src/site/apt/main.apt Tue Aug 28 19:43:33 2007
@@ -0,0 +1,42 @@
+ -----
+ Archetypeng - Main
+ -----
+ The Maven Team
+ -----
+
+Purpose
+
+ The purpose of this plugin is to provide the mecanism to
+ {{{generation.html}create}} a sample project from an
+ {{{archetypes.html}archetype}} and to {{{creation.html}create-from-project}} an archetype
+ from an existing project.
+
+Quickstart
+
+ There is two way of using the archetype plugin:
+
+ * call <<<mvn archetypeng:{{{generation.html}create}}>>> for project
+ generation from an archetype. To avoid console prompts and only use a
+ property file, add <<<-B>>> option.
+
+ * call <<<mvn archetypeng:{{{creation.html}create-from-project}}>>> in a project directory
+ for archetype creation. To avoid console prompts and only use a property
+ file, add <<<-B>>> option.
+
+ []
+
+Table of content
+
+ [[1]] {{{generation.html}Generation}} of a project.
+
+ [[1]] {{{creation.html}Creation}} of an archetype.
+
+ [[1]] What are {{{archetypes.html}archetypes}} ?
+
+ [[1]] {{{mojos.html}Mojos}} of the plugin.
+
+ [[1]] How to {{{archetype-handcraft.html}handcraft}} archetypes ?
+
+ [[1]] Archetypeng {{{design.html}design}} for developers.
+
+ []
Added: maven/sandbox/trunk/archetypeng/src/site/apt/mojos.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/src/site/apt/mojos.apt?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/src/site/apt/mojos.apt (added)
+++ maven/sandbox/trunk/archetypeng/src/site/apt/mojos.apt Tue Aug 28 19:43:33 2007
@@ -0,0 +1,87 @@
+ -----
+ Archetypeng - Mojos
+ -----
+ The Maven Team
+ -----
+
+Mojos
+
+ The two main mojos of the plugin are:
+
+ * generate which generates a Maven 2 project from an archetype. It wraps up
+ a lifecycle around the three mojos select-archetype, configure-generation
+ and generate-project.
+ For a complete example see {{{generation.html}generation}}.
+
+ * create which creates an archetype from a Maven 2 project. It wraps up a
+ lifecycle around the two mojos configure-creation and create-archetype.
+
+ []
+
+ The other mojos of the plugin are:
+
+ * clean which removes the archetype.properties file used by both the
+ generation of a project and the creation of an archetype.
+
+ * select-archetype performs the first step of the generation.
+
+ It first asks for a plugin group, looks up in the repository for
+ archetypes of that group.
+
+ Then it asks for an archetype, looks up in the repository for versions of
+ that archetype.
+
+ Then is asks for a version and asks for the confirmation of the selection.
+
+ At the end, it stores the selection in the archetype.properties file.
+
+ * configure-generation performs the second step of the generation.
+
+ It first asks values for each of the common properties.
+
+ It then asks values for each of the archtype's properties which don't
+ provide default values.
+
+ It then asks for the confirmation of the configuration.
+
+ At the end, it stores the configuration in the archetype.properties file.
+
+ * generate-project performs the third and last step of the generation.
+
+ It reads the configuration from the property file.
+
+ Then it generates all the project files from the choosen archetype's
+ templates and the configuration.
+
+ The project files are generated in a directory named from the artifactId
+ common property.
+
+ * configure-creation performs the first step of the creation.
+
+ It first asks for the archetype definition (groupId, artifactId, version).
+
+ It then asks for the values of the common properties. It provides
+ meaningfull defaults.
+
+ It then ask for some specific properties in two questions: first the name
+ of the property and second the value of that property.
+
+ It the asks for the confirmation of the configuration.
+
+ At the end, it stores the definition and configuration in the
+ archetype.properties file.
+
+ * create-archetype performs the second and last step of the creation.
+
+ It reads the definition and the configuratino from the property file.
+
+ Then it creates all the templates of the archetype from the project
+ sources files.
+
+ Then it creates the descriptor of the archetype from the configuration and
+ the resolved templates.
+
+ The resulting archetype Maven 2 project is created in the
+ target/generate-sources/archetypeng directory.
+
+ []
Added: maven/sandbox/trunk/archetypeng/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/src/site/site.xml?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/src/site/site.xml (added)
+++ maven/sandbox/trunk/archetypeng/src/site/site.xml Tue Aug 28 19:43:33 2007
@@ -0,0 +1,27 @@
+<project name="Mojo">
+ <bannerLeft>
+ <name>Mojo</name>
+ <src>http://mojo.codehaus.org/images/mojo_logo.png</src>
+ <href>http://mojo.codehaus.org</href>
+ </bannerLeft>
+ <bannerRight>
+ <name>Codehaus</name>
+ <src>http://mojo.codehaus.org/images/codehaus-small.png</src>
+ <href>http://www.codehaus.org</href>
+ </bannerRight>
+ <body>
+ <menu name="Mojo">
+ <item name="mojo" href="http://mojo.codehaus.org"/>
+ </menu>
+ <menu name="Documentation">
+ <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 Archetypeng plugin" href="./design.html"/>
+ </menu>
+ ${reports}
+ </body>
+</project>
\ No newline at end of file