Hmm, so the incremenal support is mainly in "shared" libs - which means not final plugins - but this is a work to do by plugin and not doable by maven core which can't do it by itself correctly - so can be worth opening an issue on plugins. Did you check gradle findbugs support was better and still accurate? From my experience, except the classloading creating saving time - which is small for beam I think - gradle doesnt help on speed and sucks with plugin conflics. Also note that for unit tests it is mainly about defining execution groups.
The fact surefire can't launch only test related to a modified class is actually not that bad. Several cases - and beam is already far beyong that by design - will just not have a code path to the test. I'm sure that submitting a PR to enhance it, if there is a valid solution, will be accepted but I'm also sure it requires a lot of investment to not save much time since a full build is often needed. Associating conditions on packages can be easy though (if main "foo.bar" package is changed then build tests in "foo.bar" and "foo.dummy"), can it be a compromise? Would be manual but deterministic and doable in surefire probably very easily and quickly. Side question: do we have somewhere the output of the build with https://github.com/takari/maven-profiler ? Romain Manni-Bucau @rmannibucau | Blog | Old Blog | Github | LinkedIn 2017-10-31 7:27 GMT+01:00 Reuven Lax <[email protected]>: > I think that's a very good point. No matter what build system we use for > our own personal development, we still need to release Maven artifacts and > releases as we need to support our users using Maven. > > On Mon, Oct 30, 2017 at 11:26 PM, Jean-Baptiste Onofré <[email protected]> > wrote: > >> Generally speaking, it's interesting to evaluate alternatives, especially >> Gradle. My point is also to keep Maven artifacts and "releases" as most of >> our users will use Maven. >> For incremental build, afair, there's some enhancements on Maven but I >> have to take a look. >> >> Regards >> JB >> >> On Oct 31, 2017, 07:22, at 07:22, Eugene Kirpichov >> <[email protected]> wrote: >> >Hi! >> > >> >Many of these points sound valid, but AFAICT Maven doesn't really do >> >incremental builds [1]. The best it can do is, it seems, recompile only >> >changed files, but Java compilation is a tiny part of the overall >> >build. >> > >> >Almost all time is taken by other plugins, such as unit testing or >> >findbugs >> >- and Maven does not seem to currently support features such as "do not >> >rerun unit tests of a module if the code didn't change". >> > >> >The fact that the surefire plugin has existed for >11 years (version >> >2.0 >> >was released in 2006) and still doesn't have this feature makes me >> >think >> >that it's unlikely to be supported in the next few years either. >> > >> >I suspect most PRs affect a very small number of modules, so I think >> >the >> >performance advantage of a build system truly supporting incremental >> >builds >> >may be so overwhelming as to trump many other factors. Of course, we'd >> >need >> >to prototype and have hard numbers in hand to discuss this with more >> >substance. >> > >> >[1] >> >https://stackoverflow.com/questions/8918165/does-maven- >> support-incremental-builds >> > >> >On Mon, Oct 30, 2017 at 10:57 PM Romain Manni-Bucau >> ><[email protected]> >> >wrote: >> > >> >> Hi >> >> >> >> Even if not a commiter or even PMC, I'd like to mention a few points >> >from >> >> an external eye: >> >> >> >> - Maven stays the most common build tool and easier one for any user. >> >It >> >> means it is the best one to hope contributions IMHO. >> >> - Maven has incremental support but if there is any blocker the >> >community >> >> is probably ready to enhance it (has been done for compiler plugin >> >for >> >> instance) >> >> - Gradle hides issues easily with its daemon so a build without >> >daemon is >> >> needed >> >> - Gradle doesnt isolate plugins well enough so ensure your planned >> >plugins >> >> doesnt conflict >> >> - Only Maven is correctly supported in mainstream and OS/free IDE >> >> >> >> This is the reasons why I think Maven is better - not even entering >> >into >> >> the ASF points. >> >> >> >> Now Maven is not perfect but some quick enhancements can be done: >> >> >> >> - A fast build profile can be created >> >> - Takari scheduler can be used yo enhance the parallel build >> >> - Scripts can be provided to build a subpart of the project >> >> - A beam extension can surely be done to optimize or compute the >> >reactors >> >> more easily based on module names >> >> >> >> Romain >> >> >> >> Le 31 oct. 2017 06:42, "Jean-Baptiste Onofré" <[email protected]> a >> >écrit : >> >> >> >> -0 >> >> >> >> For the following reasons reasons: >> >> - maven is a Apache project and we can have support/improvement >> >> - I don't see how another build tool would speed up the build by >> >itself >> >> - Apache default release process is based on Maven >> >> >> >> On the other hand, Gradle could be interesting. Anyway it's something >> >to >> >> evaluate. >> >> >> >> Regards >> >> JB >> >> >> >> >> >> On Oct 30, 2017, 18:46, at 18:46, Ted Yu <[email protected]> wrote: >> >> >I agree with Ben's comment. >> >> > >> >> >Recently I have been using gradle in another Apache project and >> >found >> >> >it >> >> >interesting. >> >> > >> >> >Cheers >> >> >>
