Re: Is the Maven 3 lifecycle extensions documentation page up to date?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Is the Maven 3 lifecycle extensions documentation page up to date?

Igor Fedorenko-3
Build extensions are loaded too late to contribute event spies, see how
EventSpyDispatcher makes a copy of spies when it's created. And even if
EventSpyDispatcher didn't make the copy, I think build extensions are
not in scope to capture all events, i.e. things that happen before/after
individual project builds will not be captures.

What should work is what I call "core extension" [1], which can be
configured in .mvn/extensions.xml in your project source tree and are
loaded very early during the build, before Maven core plexus container
is created.

[1] http://takari.io/book/91-maven-classloading.html

--
Regards,
Igor

On Thu, Jun 1, 2017, at 06:22 AM, Paul Hammant wrote:

> This page:
> https://maven.apache.org/examples/maven-3-lifecycle-extensions.html
>
> My problem: I have an extension that works just fine
> in ${maven.home}/lib/ext/ isn't activated when I do the all the things
> mentioned in the page.
>
> So my extension was copied from one the Takari EventSpy plugins (trimmed
> down and started over). It all worked just fine, as I say, for the ext/
> folder.  The I decided to investigate the <extensions> element per the
> page
> above, and now my extension isn't activated.
>
> Here's the diff between what worked befoe, and what doesn't work now but
> dhered to the dvice of the page:
> https://github.com/BuildRadiator/BuildRadiatorMavenExtension/commit/8b75fed6aff40907a482d9037794469eb663c6b3
>
> The advice I'd like to leave my users would be to add the following to
> their build (and set some env props - one of which I admit changed in
> that
> diff, but that's not the problem).
>
> <build>  ...
>   <extensions>
>     <extension>
>       <groupId>com.paulhammant</groupId>
>       <artifactId>buildradiatorextension</artifactId>
>       <version>1.1-SNAPSHOT</version>
>     </extension>
>   </extensions>
>   ...</build>
>
> ^ exception that doesn't do anything.
>
> Worse, if I go back to the old way with the post-diff version (dropping
> the
> jar into ext/) if doesn't work either.
>
> TL;DR - EventSpy I made won't work with /build/extensions element.  Am
> questioning the documentation.
>
> Oh, I'm standing up https://buildradiator.org/ for the benefit of all.
> Jooby/Java8/Vue.js and a 35 second Maven build including WebDriver tests
> (tests in three executions from one compilation).
>
> - Paul

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Is the Maven 3 lifecycle extensions documentation page up to date?

Paul Hammant
The tongue-stickty-outy thing was more about the fact that Maven would be
much better off shifting *all* of is documentation into something where
every page has an edit-this-page link. Even if that took the user to a GH
page, where you have to do a fork before you can edit some markdown to make
a PR, it would still be better than the current documentation structure.
Indeed README.md in root with Github's treatment of that is more powerful
than the classic gen'd ProjectInfo experience (despite the lack of
structure) for the same reason.  IMO.

Here's my maven extension - https://github.com/BuildRadiator/
BuildRadiatorMavenExtension.  No JavaDoc linked to. That's less important
these days given Intellij and Eclipse, and *very* unimportant for an
extension. Issues and Source are associated already, and not needing to be
linked to. I've added a link to 'central.  The Github people *acknowledged*
my suggestion to change to change way releases are done (https://github.com/
BuildRadiator/BuildRadiatorMavenExtension/releases) as there's a JDK
incompatible root folder in those zips, and *optionally* there need not be.
Pic: https://www.screencast.com/t/0Sg70Uqms

- Paul



On Fri, Jun 2, 2017 at 3:03 AM, Stephen Connolly <
[hidden email]> wrote:

> On Thu 1 Jun 2017 at 18:21, Paul Hammant <[hidden email]> wrote:
>
> > So the only one that worked as the -D arg to the maven invocation. I
> > checked the 10K jar into source control to avoid the bootstrap problem,
> and
> > Circle CI does exactly what I'd hope for. Proof being the intended
> result -
> > https://buildradiator.org/r#b7n63m6hcb9sm2ttdn/Build_
> Radiator_DotOrg_Master
> >
> > https://maven.apache.org/examples/maven-3-lifecycle-extensions.html
> needs
> > an update methinks. If only Apache had a wiki :-P
>
>
> cwiki.apache.org has a Maven space
>
>
> >
> > - Paul
> >
> > On Thu, Jun 1, 2017 at 9:22 AM, Paul Hammant <[hidden email]> wrote:
> >
> > > OK, thanks.
> > >
> > > I'll kill the /build/extensions element of the pom, and try
> > > .mvn/extensions.xml
> > >
> > > - Paul
> > >
> > > On Thu, Jun 1, 2017 at 7:26 AM, Igor Fedorenko <[hidden email]>
> > > wrote:
> > >
> > >> Build extensions are loaded too late to contribute event spies, see
> how
> > >> EventSpyDispatcher makes a copy of spies when it's created. And even
> if
> > >> EventSpyDispatcher didn't make the copy, I think build extensions are
> > >> not in scope to capture all events, i.e. things that happen
> before/after
> > >> individual project builds will not be captures.
> > >>
> > >> What should work is what I call "core extension" [1], which can be
> > >> configured in .mvn/extensions.xml in your project source tree and are
> > >> loaded very early during the build, before Maven core plexus container
> > >> is created.
> > >>
> > >> [1] http://takari.io/book/91-maven-classloading.html
> > >>
> > >> --
> > >> Regards,
> > >> Igor
> > >>
> > >> On Thu, Jun 1, 2017, at 06:22 AM, Paul Hammant wrote:
> > >> > This page:
> > >> > https://maven.apache.org/examples/maven-3-lifecycle-extensions.html
> > >> >
> > >> > My problem: I have an extension that works just fine
> > >> > in ${maven.home}/lib/ext/ isn't activated when I do the all the
> things
> > >> > mentioned in the page.
> > >> >
> > >> > So my extension was copied from one the Takari EventSpy plugins
> > (trimmed
> > >> > down and started over). It all worked just fine, as I say, for the
> > ext/
> > >> > folder.  The I decided to investigate the <extensions> element per
> the
> > >> > page
> > >> > above, and now my extension isn't activated.
> > >> >
> > >> > Here's the diff between what worked befoe, and what doesn't work now
> > but
> > >> > dhered to the dvice of the page:
> > >> > https://github.com/BuildRadiator/BuildRadiatorMavenExtension
> > >> /commit/8b75fed6aff40907a482d9037794469eb663c6b3
> > >> >
> > >> > The advice I'd like to leave my users would be to add the following
> to
> > >> > their build (and set some env props - one of which I admit changed
> in
> > >> > that
> > >> > diff, but that's not the problem).
> > >> >
> > >> > <build>  ...
> > >> >   <extensions>
> > >> >     <extension>
> > >> >       <groupId>com.paulhammant</groupId>
> > >> >       <artifactId>buildradiatorextension</artifactId>
> > >> >       <version>1.1-SNAPSHOT</version>
> > >> >     </extension>
> > >> >   </extensions>
> > >> >   ...</build>
> > >> >
> > >> > ^ exception that doesn't do anything.
> > >> >
> > >> > Worse, if I go back to the old way with the post-diff version
> > (dropping
> > >> > the
> > >> > jar into ext/) if doesn't work either.
> > >> >
> > >> > TL;DR - EventSpy I made won't work with /build/extensions element.
> Am
> > >> > questioning the documentation.
> > >> >
> > >> > Oh, I'm standing up https://buildradiator.org/ for the benefit of
> > all.
> > >> > Jooby/Java8/Vue.js and a 35 second Maven build including WebDriver
> > tests
> > >> > (tests in three executions from one compilation).
> > >> >
> > >> > - Paul
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: [hidden email]
> > >> For additional commands, e-mail: [hidden email]
> > >>
> > >>
> > >
> >
> --
> Sent from my phone
>
Reply | Threaded
Open this post in threaded view
|

Re: Is the Maven 3 lifecycle extensions documentation page up to date?

Paul Hammant
Back to BuildRadator.org - last nights commit made the average time
proportional for each build -
https://buildradiator.org/r#b7n63m6hcb9sm2ttdn/Build_Radiator_DotOrg_Master

Circle CI has a whole bunch of docker setup, and runs " mvn
dependency:go-offline" before it runs the 'mvn package' build. All that
takes a minute and I can't represent that in the in the timeline just yet.
I can't at all with my Maven extension, but do have alternate curl commands
for all build step updates.

Anyway, I don't need to keep this list informed on progress, so maybe this
is the last time I mention it :)

- Paul

On Fri, Jun 2, 2017 at 6:47 AM, Paul Hammant <[hidden email]> wrote:

> The tongue-stickty-outy thing was more about the fact that Maven would be
> much better off shifting *all* of is documentation into something where
> every page has an edit-this-page link. Even if that took the user to a GH
> page, where you have to do a fork before you can edit some markdown to make
> a PR, it would still be better than the current documentation structure.
> Indeed README.md in root with Github's treatment of that is more powerful
> than the classic gen'd ProjectInfo experience (despite the lack of
> structure) for the same reason.  IMO.
>
> Here's my maven extension - https://github.com/BuildRadi
> ator/BuildRadiatorMavenExtension.  No JavaDoc linked to. That's less
> important these days given Intellij and Eclipse, and *very* unimportant
> for an extension. Issues and Source are associated already, and not needing
> to be linked to. I've added a link to 'central.  The Github people
> *acknowledged* my suggestion to change to change way releases are done (
> https://github.com/BuildRadiator/BuildRadiatorMavenExtension/releases) as
> there's a JDK incompatible root folder in those zips, and *optionally*
> there need not be. Pic: https://www.screencast.com/t/0Sg70Uqms
>
> - Paul
>
>
>
> On Fri, Jun 2, 2017 at 3:03 AM, Stephen Connolly <
> [hidden email]> wrote:
>
>> On Thu 1 Jun 2017 at 18:21, Paul Hammant <[hidden email]> wrote:
>>
>> > So the only one that worked as the -D arg to the maven invocation. I
>> > checked the 10K jar into source control to avoid the bootstrap problem,
>> and
>> > Circle CI does exactly what I'd hope for. Proof being the intended
>> result -
>> > https://buildradiator.org/r#b7n63m6hcb9sm2ttdn/Build_Radiato
>> r_DotOrg_Master
>> >
>> > https://maven.apache.org/examples/maven-3-lifecycle-extensions.html
>> needs
>> > an update methinks. If only Apache had a wiki :-P
>>
>>
>> cwiki.apache.org has a Maven space
>>
>>
>> >
>> > - Paul
>> >
>> > On Thu, Jun 1, 2017 at 9:22 AM, Paul Hammant <[hidden email]> wrote:
>> >
>> > > OK, thanks.
>> > >
>> > > I'll kill the /build/extensions element of the pom, and try
>> > > .mvn/extensions.xml
>> > >
>> > > - Paul
>> > >
>> > > On Thu, Jun 1, 2017 at 7:26 AM, Igor Fedorenko <[hidden email]>
>> > > wrote:
>> > >
>> > >> Build extensions are loaded too late to contribute event spies, see
>> how
>> > >> EventSpyDispatcher makes a copy of spies when it's created. And even
>> if
>> > >> EventSpyDispatcher didn't make the copy, I think build extensions are
>> > >> not in scope to capture all events, i.e. things that happen
>> before/after
>> > >> individual project builds will not be captures.
>> > >>
>> > >> What should work is what I call "core extension" [1], which can be
>> > >> configured in .mvn/extensions.xml in your project source tree and are
>> > >> loaded very early during the build, before Maven core plexus
>> container
>> > >> is created.
>> > >>
>> > >> [1] http://takari.io/book/91-maven-classloading.html
>> > >>
>> > >> --
>> > >> Regards,
>> > >> Igor
>> > >>
>> > >> On Thu, Jun 1, 2017, at 06:22 AM, Paul Hammant wrote:
>> > >> > This page:
>> > >> > https://maven.apache.org/examples/maven-3-lifecycle-extensio
>> ns.html
>> > >> >
>> > >> > My problem: I have an extension that works just fine
>> > >> > in ${maven.home}/lib/ext/ isn't activated when I do the all the
>> things
>> > >> > mentioned in the page.
>> > >> >
>> > >> > So my extension was copied from one the Takari EventSpy plugins
>> > (trimmed
>> > >> > down and started over). It all worked just fine, as I say, for the
>> > ext/
>> > >> > folder.  The I decided to investigate the <extensions> element per
>> the
>> > >> > page
>> > >> > above, and now my extension isn't activated.
>> > >> >
>> > >> > Here's the diff between what worked befoe, and what doesn't work
>> now
>> > but
>> > >> > dhered to the dvice of the page:
>> > >> > https://github.com/BuildRadiator/BuildRadiatorMavenExtension
>> > >> /commit/8b75fed6aff40907a482d9037794469eb663c6b3
>> > >> >
>> > >> > The advice I'd like to leave my users would be to add the
>> following to
>> > >> > their build (and set some env props - one of which I admit changed
>> in
>> > >> > that
>> > >> > diff, but that's not the problem).
>> > >> >
>> > >> > <build>  ...
>> > >> >   <extensions>
>> > >> >     <extension>
>> > >> >       <groupId>com.paulhammant</groupId>
>> > >> >       <artifactId>buildradiatorextension</artifactId>
>> > >> >       <version>1.1-SNAPSHOT</version>
>> > >> >     </extension>
>> > >> >   </extensions>
>> > >> >   ...</build>
>> > >> >
>> > >> > ^ exception that doesn't do anything.
>> > >> >
>> > >> > Worse, if I go back to the old way with the post-diff version
>> > (dropping
>> > >> > the
>> > >> > jar into ext/) if doesn't work either.
>> > >> >
>> > >> > TL;DR - EventSpy I made won't work with /build/extensions
>> element.  Am
>> > >> > questioning the documentation.
>> > >> >
>> > >> > Oh, I'm standing up https://buildradiator.org/ for the benefit of
>> > all.
>> > >> > Jooby/Java8/Vue.js and a 35 second Maven build including WebDriver
>> > tests
>> > >> > (tests in three executions from one compilation).
>> > >> >
>> > >> > - Paul
>> > >>
>> > >> ------------------------------------------------------------
>> ---------
>> > >> To unsubscribe, e-mail: [hidden email]
>> > >> For additional commands, e-mail: [hidden email]
>> > >>
>> > >>
>> > >
>> >
>> --
>> Sent from my phone
>>
>
>