update to latest mojo API

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@169220 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Leslie Porter 2005-05-09 02:13:08 +00:00
parent 8e6a8fa694
commit 3dc7a5cc88
2 changed files with 155 additions and 146 deletions

View File

@ -0,0 +1,155 @@
package org.apache.maven.plugin.archetype;
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed 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.
*/
import org.apache.maven.archetype.Archetype;
import org.apache.maven.archetype.ArchetypeDescriptorException;
import org.apache.maven.archetype.ArchetypeNotFoundException;
import org.apache.maven.archetype.ArchetypeTemplateProcessingException;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Builds archetype containers.
*
* @goal create
*/
public class MavenArchetypeMojo
extends AbstractMojo
{
/**
* @parameter expression="${component.org.apache.maven.archetype.Archetype}"
* @required
*/
private Archetype archetype;
/**
* @parameter expression="${localRepository}"
* @required
*/
private ArtifactRepository localRepository;
/**
* @parameter expression="${archetypeGroupId}"
* @required
*/
private String archetypeGroupId = "org.apache.maven.archetypes";
/**
* @parameter expression="${archetypeArtifactId}"
* @required
*/
private String archetypeArtifactId = "maven-archetype-quickstart";
/**
* @parameter expression="${archetypeVersion}"
* @required
*/
private String archetypeVersion = "1.0-alpha-1-SNAPSHOT";
/**
* @parameter expression="${groupId}"
* @required
*/
private String groupId = "org.apache.maven.archetypes";
/**
* @parameter expression="${artifactId}"
* @required
*/
private String artifactId = "maven-archetype-quickstart";
/**
* @parameter expression="${version}"
* @required
*/
private String version = "1.0-SNAPSHOT";
/**
* @parameter expression="${packageName}"
* @required
*/
private String packageName = "com.mycompany.app";
/**
* @parameter expression="${project.remoteArtifactRepositories}"
* @required
*/
private List remoteRepositories;
public void execute()
throws MojoExecutionException
{
// TODO: prompt for missing values
// TODO: use new plugin type
// TODO: configurable license
// ----------------------------------------------------------------------
// archetypeGroupId
// archetypeArtifactId
// archetypeVersion
//
// localRepository
// remoteRepository
// parameters
// ----------------------------------------------------------------------
String basedir = System.getProperty( "user.dir" );
// TODO: allow this to be configured
File outputDirectory = new File( basedir, artifactId );
if ( outputDirectory.exists() )
{
throw new MojoExecutionException( outputDirectory.getName() +
" already exists - please run from a clean directory" );
}
// TODO: context mojo more appropriate?
Map map = new HashMap();
map.put( "outputDirectory", outputDirectory.getAbsolutePath() );
map.put( "package", packageName );
map.put( "packageName", packageName );
map.put( "groupId", groupId );
map.put( "artifactId", artifactId );
map.put( "version", version );
try
{
archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository,
remoteRepositories, map );
}
catch ( ArchetypeNotFoundException e )
{
throw new MojoExecutionException( "Error creating from archetype", e );
}
catch ( ArchetypeDescriptorException e )
{
throw new MojoExecutionException( "Error creating from archetype", e );
}
catch ( ArchetypeTemplateProcessingException e )
{
throw new MojoExecutionException( "Error creating from archetype", e );
}
}
}

View File

@ -1,146 +0,0 @@
package org.apache.maven.plugin.archetype;
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed 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.
*/
import org.apache.maven.archetype.Archetype;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.plugin.AbstractPlugin;
import org.apache.maven.plugin.PluginExecutionException;
import org.apache.maven.plugin.PluginExecutionRequest;
import org.apache.maven.plugin.PluginExecutionResponse;
import java.io.File;
import java.util.List;
/**
* @goal create
* @description Builds archetype containers.
* @parameter name="archetype"
* type="org.apache.maven.archetype.Archetype"
* required="true"
* validator=""
* expression="#component.org.apache.maven.archetype.Archetype"
* description=""
* @parameter name="localRepository"
* type="org.apache.maven.artifact.ArtifactRepository"
* required="true"
* validator=""
* expression="#localRepository"
* description=""
* @parameter name="archetypeGroupId"
* type="String"
* required="true"
* validator=""
* expression="#archetypeGroupId"
* default="org.apache.maven.archetypes"
* description=""
* @parameter name="archetypeArtifactId"
* type="String"
* required="true"
* validator=""
* expression="#archetypeArtifactId"
* default="maven-archetype-quickstart"
* description=""
* @parameter name="archetypeVersion"
* type="String"
* required="true"
* validator=""
* expression="#archetypeVersion"
* default="1.0-alpha-1-SNAPSHOT"
* description=""
* @parameter name="groupId"
* type="String"
* required="true"
* validator=""
* expression="#groupId"
* description=""
* @parameter name="artifactId"
* type="String"
* required="true"
* validator=""
* expression="#artifactId"
* description=""
* @parameter name="version"
* type="String"
* required="true"
* validator=""
* expression="#version"
* default="1.0-SNAPSHOT"
* description=""
* @parameter name="package"
* type="String"
* required="true"
* validator=""
* expression="#package"
* default="com.mycompany.app"
* description=""
* @parameter name="remoteRepositories"
* type="java.util.List"
* required="true"
* validator=""
* expression="#project.remoteArtifactRepositories"
* description=""
*/
public class MavenArchetypePlugin
extends AbstractPlugin
{
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
throws Exception
{
// TODO: prompt for missing values
// TODO: use new plugin type
// TODO: configurable license
// ----------------------------------------------------------------------
// archetypeGroupId
// archetypeArtifactId
// archetypeVersion
//
// localRepository
// remoteRepository
// parameters
// ----------------------------------------------------------------------
ArtifactRepository localRepository = (ArtifactRepository) request.getParameter( "localRepository" );
// From the super POM
List remoteRepositories = (List) request.getParameter( "remoteRepositories" );
String archetypeGroupId = (String) request.getParameter( "archetypeGroupId" );
String archetypeArtifactId = (String) request.getParameter( "archetypeArtifactId" );
String archetypeVersion = (String) request.getParameter( "archetypeVersion" );
Archetype archetype = (Archetype) request.getParameter( "archetype" );
String basedir = System.getProperty( "user.dir" );
// TODO: allow this to be configured
File outputDirectory = new File( basedir, (String) request.getParameter( "artifactId" ) );
request.getParameters().put( "outputDirectory", outputDirectory.getAbsolutePath() );
if ( outputDirectory.exists() )
{
throw new PluginExecutionException(
outputDirectory.getName() + " already exists - please run from a clean directory" );
}
archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository,
remoteRepositories, request.getParameters() );
}
}