Re: Strategies for overriding parent plugin configuration in some modules without duplicating config code?

2017-02-21 Thread Jörg Schaible
Hi Anders,

Anders Hammar wrote:

> Profiles are never a "perfect match". They are evil.

Profiles are a tool, that can be used for good or bad (e.g. defining 
additional/different dependencies). There's no need to demonise it.

Cheers,
Jörg


-
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org



Re: Strategies for overriding parent plugin configuration in some modules without duplicating config code?

2017-02-21 Thread Anders Hammar
Profiles are never a "perfect match". They are evil.

My suggestion is this:
Add the "correct" configuration (the one you want in the end, online
instrumentation) to your parent pom. Then in all projects where your still
want offline configuration you override this. Ideally it's just a few
config lines for the jacoco-maven-plugin in pluginMgmt.
The thinking is that for every project/module your change to online
instrumentation you also then clean up the pom wrt the old offline config.
The other way around to change to online instrumentation by ADDING config
is not right IMO.

/Anders

On Tue, Feb 21, 2017 at 8:48 AM, Jörg Schaible <
joerg.schai...@bpm-inspire.com> wrote:

> Hi David,
>
> this is a perfect match for a profile. Define your "fixed" configuration in
> a profile of the parent that is activated based on the existance of a file.
> Add such a "dummy" file in all sub project that should run with the profile
> activated, e.g. "touch profiles/fixed". Then you will not even have to
> modify the POMs of the sub projects.
>
> Cheers,
> Jörg
>
> KARR, DAVID wrote:
>
> > Although my issue is about configuring the "jacoco-maven-plugin", I think
> > it's really more of a pure Maven configuration issue, as I don't think
> > this situation is unique to JaCoCo.
> >
> > I have a somewhat large multi-module project.  Each of the child modules
> > has a parent pom that configures the "jacoco-maven-plugin" to do offline
> > instrumentation (at present, all the modules having unit tests using
> > PowerMock, which doesn't work with online instrumentation).
> >
> > I've designed a change that I'll have to make in a few classes in each
> > module that will allow the unit tests to use Mockito, and for JaCoCo to
> > use online instrumentation.  I'll eventually fix all of them to work this
> > way, but it will take a little while.  In the meantime, I just want to
> > override the configuration in the "fixed" modules with online
> > instrumentation and let the other modules use the default of offline
> > instrumentation.
> >
> > The simple-minded way to do this is just to define the same configuration
> > using online instrumentation in each "fixed" module, so it will override
> > the parent pom.  Copying that block to every "fixed" module is not a
> great
> > idea.  I'd like a solution that requires less code duplication.
> >
> > I suppose I could define ANOTHER parent pom, that specifies the existing
> > parent as its parent, and have that second parent use online
> > instrumentation, and have the fixed modules use that second parent
> > instead.  I will eventually delete this second parent pom once all of the
> > modules are "fixed".
> >
> > Note that I have a separate aggregator pom that is not a parent pom.
> >
> > Are there other reasonable strategies for this "use original parent for
> > some, override in same way for others" situation?
>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>