On Nov 23, 2012, at 3:13 AM, Jochen Wiedmann <[email protected]> wrote:
> Would be happy about comments on > > > http://grumpyapache.blogspot.de/2012/11/rfc-improving-mavens-performance.html > The fastest incremental turn around for a Maven build anywhere in any tool that exists is inside m2e. That said it is incredibly hard to get right because people almost never consider Maven beyond the command line invocation and almost never take into account incremental behaviour in their plugin code. It is an after thought. Some helper code can be useful but it boils down to understanding how to make something truly incremental and its incremental behaviour in relation to other parts of the build. Everyone always complains about the "execution not covered" in m2e but that illustrates the problem and is the crux of the problem. If all plugins used the incremental APIs that are utilized in m2e -- and they were activated within Maven -- you would have fully incremental builds. Incremental builds in m2e and the command-line are essentially the same problem and there is code for that which has been working for years. I do not believe that anything needs to happen at the beginning of the lifecycle to avoid any particular phase. The cost of checking is in the plugin itself is where it needs to happen, walking through the build plan up-front I do not think is necessary as an m2e build setup correctly -- yes it can be a bear -- works very quickly. I can fully work on and debug Guice, Sisu, and Maven in a single workspace and I can execute Maven from within the workspace on a test project near instantaneously after a change. It's possible, it does work already, it just needs some adaptation to the CLI The reason we've (Igor, Benjamin and myself) been slow in attempting to back port all this is that most of the users we ask work in the IDE all the time. We help people setup in Eclipse with m2e and help make the necessary changes to import and have large complex projects working. When they do build from the CLI or the CI server it's generally a clean build. I agree it would be highly useful to have near instantaneous feedback from the CI server but the use case we get back over and over is the IDE-first use case and that can work deadly fast. You can take a look at the maven-resources-plugin if you want an example of how the incremental APIs work. > Thanks, > > Jochen > > -- > The best argument for celibacy is that the clergy will sooner or later > become extinct. Thanks, Jason ---------------------------------------------------------- Jason van Zyl Founder & CTO, Sonatype Founder, Apache Maven http://twitter.com/jvanzyl --------------------------------------------------------- A language that doesn’t affect the way you think about programming is not worth knowing. -- Alan Perlis
