Good questions. Most of our projects use our lifecycle[1] and they serve as good examples.
The compiler is generally very fast so from a raw performance perspective if you have a very large build you simply can't have an incremental compile with Javac. It's all or nothing because it just can't give you the information to do an incremental compile. But if you change one file JDT will compile the tree incrementally where Javac is going to have to build everything. Looking at timestamps will not give you correct results. It may happen to work but it's circumstance and luck if it does. So if you have this situation with a large tree it's certainly beneficial. But in order to have an incremental build the compiler needs to be incremental for correctness and there's no way around that. There is a good blog entry from Paris Apostolopoulos[2] about his experience trying out the Takari incremental lifecycle and the performance benefits. We certainly want to make things faster but we are also concerned with correctness. We believe a separate package type is necessary because it's a conscious decision to switch to using this lifecycle. We never even considered trying to magically make the whole lifecycle work with the existing packaging as that would likely be confusing and misleading. We do outline ways to try individual incremental Mojos as part of your build, but to get the benefits of incremental support in the lifecycle you need to use our packaging type which is a replacement for the default lifecycle. [1]: https://github.com/takari/ [2]: http://javapapo.blogspot.ca/2014/11/do-you-reall-want-to-speed-up-your.html?spref=tw On Jan 15, 2015, at 7:33 AM, jieryn <[email protected]> wrote: > Is there an example project to kick the tires for incremental builds? How > about early timings for performance? > > Seems like the feature requires its own package type, won't that cause lots > of downstream headache for other tools? > On Jan 13, 2015 2:18 PM, "Jason van Zyl" <[email protected]> wrote: > >> Hi, >> >> Incremental build (or build avoidance) is a heavily discussed topic these >> days and users always ask about it in the context of Maven. In the last >> Maven Developer Hangout[1] we talked about incremental build as implemented >> for Maven and Buck and Igor also presented what might be interesting to >> users who want to learn move about incremental build which is Takari's >> incremental compiler implementation that uses JDT. If you are interested >> you can take a look here[2]. >> >> [1]: https://plus.google.com/u/0/events/cm0nnn4342ttnk0i9k4pvml3670 >> [2]: http://takari.io/2015/01/13/incremental-build.html >> >> Thanks, >> >> Jason >> >> ---------------------------------------------------------- >> Jason van Zyl >> Founder, Apache Maven >> http://twitter.com/jvanzyl >> http://twitter.com/takari_io >> --------------------------------------------------------- >> >> happiness is like a butterfly: the more you chase it, the more it will >> elude you, but if you turn your attention to other things, it will come >> and sit softly on your shoulder ... >> >> -- Thoreau >> >> >> >> >> >> >> >> >> Thanks, Jason ---------------------------------------------------------- Jason van Zyl Founder, Apache Maven http://twitter.com/jvanzyl http://twitter.com/takari_io --------------------------------------------------------- Our achievements speak for themselves. What we have to keep track of are our failures, discouragements and doubts. We tend to forget the past difficulties, the many false starts, and the painful groping. We see our past achievements as the end result of a clean forward thrust, and our present difficulties as signs of decline and decay. -- Eric Hoffer, Reflections on the Human Condition --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
