You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2010/09/12 02:21:59 UTC
svn commit: r996227 - in /maven/archetype/trunk:
archetype-common/src/main/java/org/apache/maven/archetype/
archetype-common/src/main/java/org/apache/maven/archetype/creator/
archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/
Author: hboutemy
Date: Sun Sep 12 00:21:58 2010
New Revision: 996227
URL: http://svn.apache.org/viewvc?rev=996227&view=rev
Log:
[ARCHETYPE-323] honour outputDirectory plugin parameter
Modified:
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java?rev=996227&r1=996226&r2=996227&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java Sun Sep 12 00:21:58 2010
@@ -56,6 +56,8 @@ public class ArchetypeCreationRequest
private String postPhase;
+ private File outputDirectory;
+
public String getPostPhase()
{
return postPhase;
@@ -211,4 +213,16 @@ public class ArchetypeCreationRequest
return this;
}
+
+ public File getOutputDirectory()
+ {
+ return outputDirectory;
+ }
+
+ public ArchetypeCreationRequest setOutputDirectory( File outputDirectory )
+ {
+ this.outputDirectory = outputDirectory;
+
+ return this;
+ }
}
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java?rev=996227&r1=996226&r2=996227&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java Sun Sep 12 00:21:58 2010
@@ -87,6 +87,9 @@ public class FilesetArchetypeCreator
extends AbstractLogEnabled
implements ArchetypeCreator
{
+ private final static String DEFAULT_OUTPUT_DIRECTORY = "target" + File.separator + "generated-sources"
+ + File.separator + "archetype";
+
/** @plexus.requirement */
private ArchetypeFilesResolver archetypeFilesResolver;
@@ -106,6 +109,8 @@ public class FilesetArchetypeCreator
boolean keepParent = request.isKeepParent();
boolean partialArchetype = request.isPartialArchetype();
ArtifactRepository localRepository = request.getLocalRepository();
+ File outputDirectory = request.getOutputDirectory();
+ File basedir = project.getBasedir();
Properties properties = new Properties();
Properties configurationProperties = new Properties();
@@ -117,18 +122,21 @@ public class FilesetArchetypeCreator
extractPropertiesFromProject( project, properties, configurationProperties, request.getPackageName() );
- File basedir = project.getBasedir();
- File generatedSourcesDirectory = FileUtils.resolveFile( basedir, getGeneratedSourcesDirectory() );
- generatedSourcesDirectory.mkdirs();
+ if ( outputDirectory == null )
+ {
+ getLogger().debug( "No output directory defined, using default: " + DEFAULT_OUTPUT_DIRECTORY );
+ outputDirectory = FileUtils.resolveFile( basedir, DEFAULT_OUTPUT_DIRECTORY );
+ }
+ outputDirectory.mkdirs();
- getLogger().debug( "Creating archetype in " + generatedSourcesDirectory );
+ getLogger().debug( "Creating archetype in " + outputDirectory );
try
{
File archetypePomFile =
- createArchetypeProjectPom( project, localRepository, configurationProperties, generatedSourcesDirectory );
+ createArchetypeProjectPom( project, localRepository, configurationProperties, outputDirectory );
- File archetypeResourcesDirectory = new File( generatedSourcesDirectory, getTemplateOutputDirectory() );
+ File archetypeResourcesDirectory = new File( outputDirectory, getTemplateOutputDirectory() );
File archetypeFilesDirectory = new File( archetypeResourcesDirectory, Constants.ARCHETYPE_RESOURCES );
getLogger().debug( "Archetype's files output directory " + archetypeFilesDirectory );
@@ -227,7 +235,7 @@ public class FilesetArchetypeCreator
IOUtil.close( out );
}
- createArchetypeBasicIt( archetypeDescriptor, generatedSourcesDirectory );
+ createArchetypeBasicIt( archetypeDescriptor, outputDirectory );
InvocationRequest internalRequest = new DefaultInvocationRequest();
internalRequest.setPomFile( archetypePomFile );
@@ -1168,11 +1176,6 @@ public class FilesetArchetypeCreator
return extensions;
}
- private String getGeneratedSourcesDirectory()
- {
- return "target" + File.separator + "generated-sources" + File.separator + "archetype";
- }
-
private Map<String, List<String>> getGroupsMap( final List<String> files, final int level )
{
Map<String, List<String>> groups = new HashMap<String, List<String>>();
Modified: maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java?rev=996227&r1=996226&r2=996227&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java (original)
+++ maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java Sun Sep 12 00:21:58 2010
@@ -147,7 +147,11 @@ public class CreateArchetypeFromProjectM
*/
private String archetypePostPhase;
- /** @parameter expression="${project.build.directory}" */
+ /**
+ * The directory where the archetype should be created.
+ *
+ * @parameter expression="${project.build.directory}/generated-sources/archetype"
+ */
private File outputDirectory;
/** @parameter expression="${testMode}" */
@@ -183,21 +187,22 @@ public class CreateArchetypeFromProjectM
ArchetypeCreationRequest request = new ArchetypeCreationRequest()
.setProject( project )
- /*Used when in interactive mode*/
+ /* Used when in interactive mode */
.setProperties( properties )
.setLanguages( languages )
- /*Should be refactored to use some ant patterns*/
+ /* Should be refactored to use some ant patterns */
.setFiltereds( filtereds )
- /*This should be correctly handled*/
+ /* This should be correctly handled */
.setPreserveCData( preserveCData )
.setKeepParent( keepParent )
.setPartialArchetype( partialArchetype )
- /*This should be used before there and use only languages and filtereds*/
+ /* This should be used before there and use only languages and filtereds */
.setArchetypeRegistryFile( archetypeRegistryFile )
.setLocalRepository( localRepository )
- /*this should be resolved and asked for user to verify*/
+ /* this should be resolved and asked for user to verify */
.setPackageName( packageName )
- .setPostPhase( archetypePostPhase );
+ .setPostPhase( archetypePostPhase )
+ .setOutputDirectory( outputDirectory );
ArchetypeCreationResult result = archetype.createArchetypeFromProject( request );
@@ -207,7 +212,7 @@ public class CreateArchetypeFromProjectM
result.getCause().getMessage() );
}
- getLog().info( "Archetype created in target/generated-sources/archetype" );
+ getLog().info( "Archetype created in " + outputDirectory );
if ( testMode )
{