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]

Reply via email to