You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2005/12/05 00:30:00 UTC
svn commit: r353935 -
/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java
Author: jvanzyl
Date: Sun Dec 4 15:29:52 2005
New Revision: 353935
URL: http://svn.apache.org/viewcvs?rev=353935&view=rev
Log:
o adding a parameter that will let you specify remote repositories on the cli
Modified:
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java
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=353935&r1=353934&r2=353935&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 Dec 4 15:29:52 2005
@@ -21,13 +21,18 @@
import org.apache.maven.archetype.ArchetypeNotFoundException;
import org.apache.maven.archetype.ArchetypeTemplateProcessingException;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.ArrayList;
/**
* Builds archetype containers.
@@ -42,12 +47,22 @@
extends AbstractMojo
{
/**
- * @parameter expression="${component.org.apache.maven.archetype.Archetype}"
- * @required
+ * @component
*/
private Archetype archetype;
/**
+ * @component
+ */
+ private ArtifactRepositoryFactory artifactRepositoryFactory;
+
+ /**
+ * @component role="org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout" roleHint="default"
+ */
+ private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
+
+
+ /**
* @parameter expression="${localRepository}"
* @required
*/
@@ -98,7 +113,12 @@
* @parameter expression="${project.remoteArtifactRepositories}"
* @required
*/
- private List remoteRepositories;
+ private List pomRemoteRepositories;
+
+ /**
+ * @parameter expression="${remoteRepositories}"
+ */
+ private String remoteRepositories;
public void execute()
throws MojoExecutionException
@@ -140,9 +160,23 @@
map.put( "version", version );
+ List archetypeRemoteRepositories = new ArrayList( pomRemoteRepositories );
+
+ if ( remoteRepositories != null )
+ {
+ archetypeRemoteRepositories = new ArrayList();
+
+ String[] s = StringUtils.split( remoteRepositories, "," );
+
+ for ( int i = 0; i < s.length; i++ )
+ {
+ archetypeRemoteRepositories.add( createRepository( s[i], "id" + i ));
+ }
+ }
+
try
{
- archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository, remoteRepositories, map );
+ archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository, archetypeRemoteRepositories, map );
}
catch ( ArchetypeNotFoundException e )
{
@@ -157,4 +191,23 @@
throw new MojoExecutionException( "Error creating from archetype", e );
}
}
+
+ public ArtifactRepository createRepository( String url, String repositoryId )
+ {
+ // snapshots vs releases
+ // offline = to turning the update policy off
+
+ //TODO: we'll need to allow finer grained creation of repositories but this will do for now
+
+ String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;
+
+ String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
+
+ ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
+
+ ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
+
+ return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, releasesPolicy );
+ }
}
+