You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Casey Butterworth <ca...@gmail.com> on 2009/01/09 03:18:09 UTC
maven-archetype-plugin: Special Characters (#, $, etc)
Hi All,
I was recently having some trouble with a # (hash) symbol in a filtered file
within a filtered file in my archetype and thought I'd share my solution for
feedback and hopefully to help any others with the same problem:
The following line in my spring applicationContext.xml:
implementor="#${service-name-camelcase}Service"
for some reason was always resulting in:
implementor="#theServiceName#ervice"
(instead of implementor="#theServiceNameService")
I did a bit of debugging and noticed that velocity 1.4 is being used in the
archetype problem and after some googling came across
http://www.mail-archive.com/user@velocity.apache.org/msg01877.html which
describes ways to avoid problems with the # symbol in velocity. I didn't
really want to declare any velocity symbols or macros inside an archetype
template file, however, I came up with the following solution:
1. Add a new requiredProperty to archetype-metadata.xml:
<requiredProperties>
<requiredProperty key="hashSymbol">
<defaultValue>#</defaultValue>
</requiredProperty>
</requiredProperties>
2. Use this property wherever there are problems with the hash symbol, i.e
the first line above becomes:
implementor="${hashSymbol}${service-name-camelcase}Service"
So far this seems to work correctly.
Hope this helps
Casey
p.s. Does anyone have any thoughts on this approach, and/or feels that this
requires a bug report against the archetype plugin?
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org