Re: Multiple executions of Maven with a single run

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: Multiple executions of Maven with a single run

Enrico Olivelli
Romain

Il giorno dom 5 gen 2020 alle ore 18:14 Romain Manni-Bucau <
[hidden email]> ha scritto:

> Hi Enrico
>
> Technically concatenating all goals for all modules will do it but will be
> quite long - guess it is why we do it in 2 times.
>
> That said i always wondered why maven can read commands from a file/stdin
> as any unix like soft so it would be something like:
>
> mvn --commands-file ci.cmdlist
>
> Using stdin/echo it would also match ypur ci need maybe?
>

(I am sorry, It seems that my original email was truncated or the email
client sent some draft of the email.)

This is exactly my second proposal.

Currently I am also thinking that this can simply be a new mojo of the
'invoker' plugin

mvn invoker:commandlist -Dcommandlist=/path/tofile
or getting the list from stdin

I have never dug into invoker but it seems to me that it should have all of
the facilities to perform this task.
The only challenge I see is about Java System properties to be set at
bootstrap time, like -Dfile.encoding....
but the Invoker plugin may fork new JVMs so it should not be a big problem
and btw it is a secondary issue

Enrico





>
>
> Le dim. 5 janv. 2020 à 17:31, Enrico Olivelli <[hidden email]> a
> écrit :
>
> > Hello,
> > Sometimes it happens that you have to launch twice Maven to:
> > - build a whole reactor project (warmup)
> > - run some specific mojo only a selection of modules
> >
> > mvn clean install -DskipTests -Dmaven.repo.local=tmprepo
> >
> > mvn do:something -pl module1,module1-Dmaven.repo.local=tmprepo
> >
> > I think that in the general case there is no way to do this with one
> single
> > execution of Maven, for instance from CI.
> >
> > I am thinking about a simple enhancement to workaround this problem:
> > We can let Maven executable to accept a list of command line execution
> > arguments and loop executing the list, halting at the first failure
> >
>