org.apache.maven.archetype.mojos
Class CreateArchetypeFromProjectMojo

java.lang.Object
  extended by org.apache.maven.plugin.AbstractMojo
      extended by org.apache.maven.archetype.mojos.CreateArchetypeFromProjectMojo
All Implemented Interfaces:
ContextEnabled, Mojo

public class CreateArchetypeFromProjectMojo
extends AbstractMojo

Creates an archetype project from the current project.

This goal reads your source and resource files, the values of its parameters, and properties you specify in a .property file, and uses them to create a Maven archetype project using the maven-archetype packaging. If you build the resulting project, it will create the archetype. You can then use this archetype to create new projects that resemble the original.

The maven-archetype-plugin uses Velocity to expand template files, and this documentation talks about 'Velocity Properties', which are values substituted into Velocity templates. See The Velocity User's Guide for more information.

This goal modifies the text of the files of the current project to form the Velocity template files that make up the archetype.

GAV
The GAV values for the current project are replaced by properties: groupId, artifactId, and version. The user chooses new values for these when generating a project from the archetype.
package
All the files under one specified Java (or cognate) package are relocated to a project that the user chooses when generating a project. References to the class name are replaced by a property reference. For example, if the current project's sources are in the package org.apache.saltedpeanuts, then any example of the string org.apache.saltedpeanuts is replaced with the Velocity property reference ${packageName}. When the user generates a project, this is in turn replaced by his or her choice of a package.
custom properties
You may identify additional strings that should be replaced by parameters. To add custom properties, you must use the propertyFile parameter to specify a property file. See the documentation for propertyFile for the details.

Note that you may need to edit the results of this goal. This goal has no way to exclude unwanted files, or add copyright notices to the Velocity templates, or add more complex elements to the archetype metadata file.

This goal also generates a simple integration-test that exercises the generated archetype.

Author:
rafale
Aggregates the Maven project and its child modules.
Is defined to be executed in:
phase:
generate-sources
Is defined by the goal name:
create-from-project
Requires a Maven project to run:
true

Field Summary
 
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
 
Constructor Summary
CreateArchetypeFromProjectMojo()
           
 
Method Summary
 void execute()
           
 
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CreateArchetypeFromProjectMojo

public CreateArchetypeFromProjectMojo()
Method Detail

execute

public void execute()
             throws MojoExecutionException,
                    MojoFailureException
Throws:
MojoExecutionException
MojoFailureException


Copyright © 2007-2011 The Apache Software Foundation. All Rights Reserved.