Hey Raphaël, I added the settings to my settings.xml as you described and ran 
archetype:create-from-project.  The POM file referenced 2.0-alpha-2.

$ mvn -P apache-snapshots archetype:create-from-project

$ cat target/generated-sources/archetype/pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project>
  ...
  <version>1.0-SNAPSHOT</version>
  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.archetype</groupId>
        <artifactId>archetype-packaging</artifactId>
        <version>2.0-alpha-2</version>
      </extension>
    </extensions>
    <plugins>
      <plugin>
        <artifactId>maven-archetype-plugin</artifactId>
        <version>2.0-alpha-2</version>
        <extensions>true</extensions>
      </plugin>
    </plugins>
  </build>
</project>

So I added the following to my parent POM, and the resulting POM under 
target/generated-sources/archetype had 2.0-alpha-3 in them.

    ...
    <build>
      ...
        <extensions>
        <extension>
          <groupId>org.apache.maven.archetype</groupId>
          <artifactId>archetype-packaging</artifactId>
          <version>2.0-alpha-3-SNAPSHOT</version>
        </extension>
      </extensions>
      ...
      <plugin>
        <artifactId>maven-archetype-plugin</artifactId>
        <version>2.0-alpha-3-SNAPSHOT</version>
        <extensions>true</extensions>
      </plugin> 
      ...
    </build>
    ...

Unfortunately, I now get the following error when rerunning 
archetype:create-from-project:

...
[INFO] Setting property: classpath.resource.loader.class => 
'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] org/apache/commons/lang/StringUtils
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
        at 
org.apache.velocity.runtime.resource.ResourceManagerImpl.initialize(ResourceManagerImpl.java:165)
        at 
org.apache.velocity.runtime.RuntimeInstance.initializeResourceManager(RuntimeInstance.java:594)
        at 
org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:241)
        at org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:116)
        at 
org.codehaus.plexus.velocity.DefaultVelocityComponent.initialize(DefaultVelocityComponent.java:79)
...

I tried including commons-lang in POMs to see if that would help, but no luck.
Thanks

-----Original Message-----
From: Raphaël Piéroni [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 28, 2008 3:40 PM
To: Maven Users List
Subject: Re: Multi-module archetypes

Hi John,

This feature is provided by the 2.0-alpha-3 version of the Archetype plugin. 
This version is not yet released.
But you can try the last snapshot by adding a repository to apache snapshot [1].

1. The goal to call from the project directory (or parent in case of a multi 
module) is 'mvn archetype:create-from-project'.
2. Then go to the target/generated-sources/archetype directory and see if the 
generated archetype is correct.
install the archetype in your local repository by calling 'mvn install' as 
usual.
3. Then go to a fresh directory and call 'mvn archetype:generate 
-DarchetypeCatalog=local'.

Step 3 may don't work because repositories defined in profiles in the 
settings.xml file are recognised only when maven is called in a project's 
directory. One may try to use the apache's snapshot repository as mirror of 
central (not tested).

Another workaround i see is compiling the plugin from the sources.

Please share your experience of using the plugin afterward.

Thanks,

Raphaël

[1]: in settings.xml :
        <profile>
            <id>apache-snapshots</id>
            <repositories>
                <repository>
                    <id>apache-snapshot</id>
                    <name>Apache Snapshots</name>
                    <releases>
                        <enabled>false</enabled>
                        <updatePolicy>never</updatePolicy>
                        <checksumPolicy>warn</checksumPolicy>
                    </releases>
                    <snapshots>
                        <updatePolicy>always</updatePolicy>
                        <checksumPolicy>warn</checksumPolicy>
                    </snapshots>

<url>http://people.apache.org/maven-snapshot-repository/</url>
                    <layout>default</layout>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>apache-snapshot</id>
                    <name>Apache Snapshots</name>
                    <releases>
                        <enabled>false</enabled>
                        <updatePolicy>never</updatePolicy>
                        <checksumPolicy>warn</checksumPolicy>
                    </releases>
                    <snapshots>
                        <updatePolicy>always</updatePolicy>
                        <checksumPolicy>warn</checksumPolicy>
                    </snapshots>

<url>http://people.apache.org/maven-snapshot-repository/</url>
                    <layout>default</layout>
                </pluginRepository>
            </pluginRepositories>
        </profile>


2008/3/28, Prystash,John <[EMAIL PROTECTED]>:
>
>  I'm stepping into my first foray into creating archeyptes.  In 
> general,  is there support for creating an archetype for a multi-module 
> project?
>  Or is better to build a project with multiple archetypes?  My first  
> thought would be I'd have problem injecting the parent project name 
> into  the directory structure?
>
>         MyService
>                 MyService-core
>                 MyService-container
>
>  Thanks
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to