On Thu, 15 Jul 2004 21:26:41 +0200, Vincent Massol <[EMAIL PROTECTED]> wrote:

> I'm answering on the list now as this issue is turning into a discussion... :-)

Makes sense, I was thinking about that too. In fact, I can wrap up the discussion in a [VOTE] message, if you don't mind.

> I don't think there's any relation with the multiproject here. If you wish
> to share properties between multiple projects in Maven, you simply define it
> in a top level project.properties file which gets inherited automatically
> when you use the <extend> element in the child projects.


Yes, I know. I'm more concerned about the variable's value (see below).

> The properties are getting placed in the context of the project. They are
> each resolved at runtime. Which means ${basedir} gets the right value.

Yes, the multiproject/reactor takes a good care of this basedir resolution (in fact, the multiproject's FAQ states that you should always use ${basedir} in these casses). The problem is, I'd like the option of using the same customized stylesheet in many different projects, independently of using multiproject or not. For instance, imagine I have a master project with many sub-projects. If I set at the master level the property:

maven.announcement.stylesheet.value=etc/myAnnouncement.jcl

Then all sub-projects will reference the right file (i.e., located at the ROOT_MULTIPROJECT/etc), when I invoke multiproject (I'm assuming that's the multiproject behavior when ${basedir} is not used. I haven't tested that though). But then if I run a project on its own (i.e., not using multiproject), it would try to find the file at PROJECT_DIR/etc, which is wrong. Of course, I could solve that issue (without using the type property) by using a absolute URI, but that would be bad, as I would need to know the physical location of the file (or at least an EL expression to obtain that value). On the other hand, if we had the type property, I could easily solve it setting these properties:

maven.announcement.stylesheet.type=resource
maven.announcement.stylesheet.value=myAnnouncement.jcl

These properties state that the myAnnouncement.jcl is located at the announcement's plugin directory, so the location is the same independently of how I'm invoking my project. The only drawback is that I have to sneak that file into the plugins's directory, but that's fine in my situation, as we provided a customized maven instalation anyway. As an additional advantage of this approach, we could provide more stylesheets in the distribution (for instance, announcement.jcl, fullAnnouncement.jcl, minimumAnnoucement.jcl, etc...).

What do you think?

Felipe

PS: for those who haven't a clue about what is this discussion about, take a look on the Jira's discussion:

http://jira.codehaus.org/browse/MPANNOUNCEMENT-11


















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



Reply via email to