Author: brett Date: Sun Mar 19 05:35:55 2006 New Revision: 386966 URL: http://svn.apache.org/viewcvs?rev=386966&view=rev Log: only overlay partial archetype if artifact ID was not given
Modified: maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java Modified: maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java URL: http://svn.apache.org/viewcvs/maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java?rev=386966&r1=386965&r2=386966&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java (original) +++ maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java Sun Mar 19 05:35:55 2006 @@ -16,11 +16,11 @@ * limitations under the License. */ +import org.apache.maven.artifact.repository.ArtifactRepository; + import java.util.List; import java.util.Map; -import org.apache.maven.artifact.repository.ArtifactRepository; - /** * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> * @version $Id$ @@ -33,6 +33,7 @@ String ARCHETYPE_RESOURCES = "archetype-resources"; + // TODO: delete this, it probably should be project.getFile instead String ARCHETYPE_POM = "pom.xml"; void createArchetype( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion, Modified: maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java URL: http://svn.apache.org/viewcvs/maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java?rev=386966&r1=386965&r2=386966&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java (original) +++ maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java Sun Mar 19 05:35:55 2006 @@ -85,12 +85,8 @@ // artifactId = maven-foo-archetype // version = latest - public void createArchetype( String archetypeGroupId, - String archetypeArtifactId, - String archetypeVersion, - ArtifactRepository localRepository, - List remoteRepositories, - Map parameters ) + public void createArchetype( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion, + ArtifactRepository localRepository, List remoteRepositories, Map parameters ) throws ArchetypeNotFoundException, ArchetypeDescriptorException, ArchetypeTemplateProcessingException { // ---------------------------------------------------------------------- @@ -195,12 +191,18 @@ File outputDirectoryFile; - if ( pomFile.exists() && descriptor.isAllowPartial() ) + if ( pomFile.exists() && descriptor.isAllowPartial() && artifactId == null ) { outputDirectoryFile = new File( basedir ); } else { + if ( artifactId == null ) + { + throw new ArchetypeTemplateProcessingException( + "Artifact ID must be specified when creating a new project from an archetype." ); + } + outputDirectoryFile = new File( basedir, artifactId ); if ( outputDirectoryFile.exists() ) Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java URL: http://svn.apache.org/viewcvs/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java?rev=386966&r1=386965&r2=386966&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java (original) +++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java Sun Mar 19 05:35:55 2006 @@ -26,22 +26,21 @@ import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.StringUtils; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.ArrayList; /** - * Builds archetype containers. - * - * @goal create - * @description The archetype creation goal looks for an archetype with a given groupId, artifactId, and + * The archetype creation goal looks for an archetype with a given groupId, artifactId, and * version and retrieves it from the remote repository. Once the archetype is retrieve it is process against * a set of user parameters to create a working Maven project. + * * @requiresProject false + * @goal create */ public class MavenArchetypeMojo extends AbstractMojo @@ -88,13 +87,11 @@ /** * @parameter expression="${groupId}" - * @required */ private String groupId; /** * @parameter expression="${artifactId}" - * @required */ private String artifactId; @@ -120,6 +117,11 @@ */ private String remoteRepositories; + /** + * @parameter expression="${project}" + */ + private MavenProject project; + public void execute() throws MojoExecutionException { @@ -136,6 +138,11 @@ // parameters // ---------------------------------------------------------------------- + if ( project.getFile() != null && groupId == null ) + { + groupId = project.getGroupId(); + } + String basedir = System.getProperty( "user.dir" ); if ( packageName == null ) @@ -164,7 +171,7 @@ if ( remoteRepositories != null ) { - getLog().info( "We are using command line specified remote repositories: " + remoteRepositories ); + getLog().info( "We are using command line specified remote repositories: " + remoteRepositories ); archetypeRemoteRepositories = new ArrayList(); @@ -172,13 +179,14 @@ for ( int i = 0; i < s.length; i++ ) { - archetypeRemoteRepositories.add( createRepository( s[i], "id" + i )); + archetypeRemoteRepositories.add( createRepository( s[i], "id" + i ) ); } } try { - archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository, archetypeRemoteRepositories, map ); + archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository, + archetypeRemoteRepositories, map ); } catch ( ArchetypeNotFoundException e ) { @@ -207,11 +215,14 @@ String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN; - ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); + ArtifactRepositoryPolicy snapshotsPolicy = + new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); - ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); + ArtifactRepositoryPolicy releasesPolicy = + new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); - return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, releasesPolicy ); + return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, + snapshotsPolicy, releasesPolicy ); } }