I’m not sure if it’s the correct way to do it, but I’ve done this using negated activation using properties
parent pom:
<profile>
<id>build-all-my-docs</id>
<activation>
<property>
<name>build-all-docs</name>
</property>
</activation>
</profile>
child pom:
<profile>
<id>build-dev-docs</id>
<activation>
<property>
<name>!build-all-docs</name>
</property>
</activation>
</profile>
then:
mvn -Dbuild-all-docs=true help:active-profiles
will show you that the parent profile is activate and the child profile is
inactive
and:
mvn help:active-profiles
should show the inverse.
Jim Klo
Senior Software Engineer
Center for Software Engineering
SRI International
t. @nsomnac
> On Feb 22, 2017, at 11:14 AM, Shahim Essaid <[email protected]> wrote:
>
> Hi,
>
> I tested the possibility of overriding a profile in a child POM by using
> the same profile id but it doesn't work. The profiles get merged.
>
> Is there a simple way to fully override a profile in a child POM?
>
> Merging (i.e. composing) profiles is very useful but I can get this
> behavior by activating different profiles (with different ids) on the same
> property. It looks like creating a child profile with the same id has
> exactly the same behavior.
>
> I'm sure this behavior is something that can't be change at this point but
> it might be useful to be able to override a profile by id to give some
> additional options for how to design a build through inheritance. Having to
> override individual plugins and executions inherited from a parent profile
> can get a little tedious.
>
> I don't have a specific use-case in mind. I was just trying to understand
> all my options before thinking about how to compose and override my build
> behaviors.
>
> Best,
> Shahim
smime.p7s
Description: S/MIME cryptographic signature
