oww so forgive me for what i said before

Regards,
Rafael.

On Fri, Mar 25, 2011 at 10:39 AM, Stephen Connolly <
[email protected]> wrote:

> On 25 March 2011 13:36, Rafael Vanderlei <[email protected]>
> wrote:
> > Jörg and Benjamin, thanks for your explanation. I understand now that
> > profiles are not allowed to be activated by properties defined inside a
> POM
> > because it could form cycles (though maybe with some design decisions it
> > could be avoided, but I have no idea of Maven code to give any
> suggestions
> > about that).
> >
> > And, Jörg, about the name of the tag in the activation, I believe it´s
> > property instead of systemProperty because there are both options to
> > activate it: one using a system/environment property/variable and other
> > using a maven property (although in the latter case its necessary to be a
> > property defined in the command line)
>
> properties defined by the CLI _are_ system properties.
> >
> > Regards,
> > Rafael Vanderlei
> >
> > On Fri, Mar 25, 2011 at 3:37 AM, Jörg Schaible
> > <[email protected]>wrote:
> >
> >> Hi Rafael,
> >>
> >> Rafael Vanderlei wrote:
> >>
> >> > Jörg, I understood when you first said that the way Maven is currently
> >> > implemented it does not work this way.
> >> >
> >> > I'm just wondering if there is a suitable reason for that. So what I
> >> still
> >> > dont understand is "if a property declared in a parent pom can be used
> on
> >> > the child pom for other purposes, WHY cant it be used to activate a
> >> > profile defined in that child pom?"
> >> >
> >> > Maybe it's just a matter that maven developers did not think about and
> >> > maybe could be simply implemented to work this way.
> >>
> >> On top of Benjamin's answer you have to understand *when* Maven is
> >> resolving
> >> the profiles and *when* the properties. The properties are determined
> from
> >> the "effective" pom for the current project i.e. the project model that
> is
> >> the result of merging all inherited POMs and active profiles into the
> final
> >> one that is used to build the project. This "effective" pom *is* what
> >> defines your project build - including the properties, because they are
> >> part
> >> of your final project definition.
> >>
> >> The profiles are used to modify this project model for alternate builds,
> >> they create a different "effective" pom i.e. the result is more or less
> a
> >> different project. Since the properties are part of the model, they
> cannot
> >> be used to modify it again - this is the chicken and egg problem. In the
> >> light of this it is unfortunate that the tag in the activation is named
> >> "property" instead of "systemProperty", because most people make the
> wrong
> >> association.
> >>
> >> Forget your assumption of evaluating the parent pom first - the model
> has
> >> to
> >> be complete to evaluate anything. As a consequence of this behavior you
> can
> >> use a property in the parent, but define (or overwrite) it in the child.
> >>
> >> - Jörg
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
> >>
> >
>

Reply via email to