maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Genter <>
Subject Dynamically generating class names with archetype
Date Tue, 19 Apr 2011 21:11:26 GMT
I'm building an archetype for generating Maven projects for our custom application framework.
Everything is working but the generated project always has the same class names and annotations.
I would like to be able to dynamically specify those names/annotations.

For example, I can specify my Java file (src/main/resources/archetype-resources/src/main/java/
like this:

package ${packageName};

// imports go here...

@OurAnnotation(client="Client", application="ClientApp", version="1.0.0-SNAPSHOT")
public class ClientApp extends OurBaseClass {

but what I'd like to do is something like this:

package ${packageName};

// imports go here...

@OurAnnotation(client="${client}", application="${clientApp}", version="${clientAppVersion}")
public class ${clientApp} extends OurBaseClass {

I tried the above and using:

mvn archetype:generate -DarchetypeGroupId=... -DarchetypeArtifactId=... -DarchetypeVersion=...
-Dclient=Acme -DclientApp=HelloWorld6 -DclientAppVersion=1.0.0-SNAPSHOT -DgroupId=net.interactions.example
-Dversion=0.0.1-SNAPSHOT -DartifactId=hello-world-6

my generated file had the correct package name (net.interactions.example),
but none of the other substitutions were performed. Also, I'd need the generated file itself
to have the correct name (${clientApp}.java). I'd have preferred that the generated file be
named "" and have the content:

package net.interactions.example;

// imports go here...

@OurAnnotation(client="Acme", application="HelloWorld6", version="0.0.1-SNAPSHOT")
public class HelloWorld6 extends OurBaseClass {

Is what I want to do possible?
Rick Genter

This e-mail and any of its attachments may contain Interactions Corporation
proprietary information, which is privileged, confidential, or subject to
copyright belonging to the Interactions Corporation. This e-mail is intended
solely for the use of the individual or entity to which it is addressed. If you
are not the intended recipient of this e-mail, you are hereby notified that any
dissemination, distribution, copying, or action taken in relation to the
contents of and attachments to this e-mail is strictly prohibited and may be
unlawful. If you have received this e-mail in error, please notify the sender
immediately and permanently delete the original and any copy of this e-mail and
any printout. Thank You. 

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message