Proposal for making (sub-)module handling more flexible with regards to folder
names
------------------------------------------------------------------------------------
Key: ARCHETYPE-350
URL: http://jira.codehaus.org/browse/ARCHETYPE-350
Project: Maven Archetype
Issue Type: Improvement
Affects Versions: 2.0
Reporter: Marc Wirth
Attachments: module_name.patch
We have a use-case where we want modules to use the artifact ID of the parent
as prefix, but the modules folder should only use the "suffix" to keep overall
paths short (without becoming too redundant.)
To make configuration more flexible I've changed the implementation so that the
"name" of a module is used to define the output folder where the module is
created and that it is run through velocity so that arbitrary properties can be
defined. Please check the attached patch file.
For example with this patch we could use a archetype-metadata definition like:
{code}
<requiredProperty key="subArtifactId">
...
<module id="${rootArtifactId}.${subArtifactId}" dir="__rootArtifactId__.sub"
name="${subArtifactId}">
{code}
to generate the module (from {{__rootArtifactId__.sub}} in the archetype-zip)
into a folder that only consists of the module name, but having the
rootArtifact ID plus the module name as its artifactId.
I don't have a testcase specifically for this, but at least it doesn't break
the existing fileset-archetype tests.
While looking through the relevant code I've tried to clean up a few other
oddities (artifactId is reset so log output would print a potentially wrong id,
what looked like a mixup of replacements in Strings with ${x} or __x__
delimiters to me).
Also,
http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-metadata.html
says "The attributes name, id and dir of the module are used to determine the
directory where to generate that module's files, they also are used to
determine the artifactId of the Maven project corresponding to this module."
but actually the name attribute was never used during generation (only set
during creation, same value as the id). To distinguish the source location
within the archetype, i.e. the dir-attribute, from the destination I used the
name attribute to define the output directory name.
What do you think about that?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira