Author: jvanzyl Date: Sun Mar 5 07:37:01 2006 New Revision: 383341 URL: http://svn.apache.org/viewcvs?rev=383341&view=rev Log: adding archeypte creator mojo
Added: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/CreateArchetypeFromProjectMojo.java (with props) Added: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/CreateArchetypeFromProjectMojo.java URL: http://svn.apache.org/viewcvs/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/CreateArchetypeFromProjectMojo.java?rev=383341&view=auto ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/CreateArchetypeFromProjectMojo.java (added) +++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/CreateArchetypeFromProjectMojo.java Sun Mar 5 07:37:01 2006 @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2006 Your Corporation. All Rights Reserved. + */ +package org.apache.maven.plugin.archetype; + +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.archetype.Archetype; +import org.apache.maven.archetype.ArchetypeNotFoundException; +import org.apache.maven.archetype.ArchetypeDescriptorException; +import org.apache.maven.archetype.ArchetypeTemplateProcessingException; +import org.apache.maven.archetype.ArchetypeCreator; +import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; +import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.MavenProjectHelper; +import org.codehaus.plexus.util.StringUtils; + +import java.util.List; +import java.util.Map; +import java.util.HashMap; +import java.util.ArrayList; +import java.util.Properties; +import java.io.File; +import java.io.FileInputStream; + +/** + * Builds archetype containers. + * + * @goal create-from-project + * @description Create an archetype from an existing Maven project. + * @requiresProject true + */ +public class CreateArchetypeFromProjectMojo + extends AbstractMojo +{ + /** + * @parameter expression="${project}" + * @required + */ + private MavenProject project; + + /** + * @parameter expression="${localRepository}" + * @required + */ + private ArtifactRepository localRepository; + + /** + * @parameter expression="${targetDirectory}" default-value="${project.build.directory}" + * @required + */ + private File targetDirectory; + + /** + * @component + */ + private ArchetypeCreator archetypeCreator; + + /** + * Maven ProjectHelper + * + * @component + */ + private MavenProjectHelper projectHelper; + + + /** + * @parameter expression="${archetypeProperties}" default-value="${basedir}/src/main/archetype/archetype.properties" + * @required + */ + private File archetypeProperties; + + public void execute() + throws MojoExecutionException + { + try + { + Properties p = new Properties(); + + p.load( new FileInputStream( archetypeProperties ) ); + + File archetypeJar = archetypeCreator.createArchetype( project, localRepository, targetDirectory, p ); + + projectHelper.attachArtifact( project, "jar", "archetype", archetypeJar ); + } + catch ( Exception e ) + { + throw new MojoExecutionException( "Cannot create archetype from this project.", e ); + } + } +} Propchange: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/CreateArchetypeFromProjectMojo.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/CreateArchetypeFromProjectMojo.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision"