The Build Tool Report: Turnaround Times using Ant, Maven, Eclipse, IntelliJ, and NetBeans
October 21st, 2009 by Jevgeni KabanovSome time ago we ran a survey asking a few questions about the build process, specifically the tools that are used to do incremental builds and how much time those builds take. We had over 600 responses, so now it’s time to count the results.
This is the first time that we’ve published results on the incremental build process, so the information is more likely to serve as a guide than an authoritative information source. That being said, the information is still quite interesting, and if it serves to start a conversation that improves the process of even one team, then we’re proud to have helped out. If you haven’t answered the 3-question survey yet, take two minutes and go for it – and do let your community know about it – as more answers trickle in we’ll update this post with the new data. If you’d like to play with the results on your own we‘ve provided all the data and our calculations in a handy Excel sheet that you can download here.
The first question in the survey was “What build tool do you use for incremental builds on your largest current project?” The breakdown follows:
Chart 1: “Which build tool is used most often for incremental builds?”

This does not include tools that scored less than 10 answers in the survey. Those are:
- Buildr
- Shell scripts
- javac
- Make
- NAnt
- Savant
- Hudson
- PHP
Maven and Ant are responsible for over half of the incremental builds in the wild. It also seems that Maven has overtaken Ant by popularity, although you should take it with a grain of salt as the questions were not phrased for this purpose. Unfortunately I couldn’t find any external data to confirm or contradict these results. Please do let us know if you know of other surveys on this topic.
The other half of incremental builds are done inside IDEs. Although some of those are just driving Ant or Maven inside the IDE, there is also a large number of developers that use the IDE as the primary build tool during development (we’ll analyze this in detail in the end of the report).
It might be valuable to reiterate here that this is a poll where respondents are self-selecting, and therefore it may not accurately reflect the actual marketplace when it comes to determining market share. Since we’re more interested in the incremental build process itself, that’s something we can live with. That being said, there is a chance that people who have fast (or slow) builds may be more likely to complete a poll like this. Since we’re not sure if this is serious enough to sway any results, we’ll just display the data, and let you decide. So, while 53% of developers are using Ant or Maven for their incremental builds, everyone else uses their IDEs: Eclipse is dominating the IDE landscape with 32% , followed by IntelliJ IDEA at 10% and NetBeans at 5%.
With that in mind, we asked, “How long does an incremental build take?”
Chart 2: “How long does an incremental build take?”
This is relatively good news. Nearly half of our respondents (44%) indicated that their incremental build process takes less than 30 seconds. 40% of respondents have incremental builds lasting from 1 to 3 minutes. Only 16% of incremental builds last over 4 minutes.
The average length of a build is 1.9 minutes with the standard deviation of 2.8.
To finish up, we asked, “In an hour of coding, how many times do you run an incremental build?”
Chart 3: “How often do Java developers run incremental builds?”
A healthy 31% of respondents don’t have to run the build at all (e.g. it’s run automatically on save). The rest of the numbers are all over the place, so we’ll wait with the analysis until we can put them in context.
The average number of incremental builds an hour is 3.9 times, with a standard deviation of 4.1.
It’s time to crunch some data. We assigned numeric values to each of the intervals (e.g. “2.5″ for the “2-3″ interval) and multiplied the number of incremental builds an hour by the amount of time one incremental build takes (basically, Chart 2 times Chart 3), thus finding the approximate amount of time respondents spend building in each hour of development. This was done per respondent, so if someone said that their build takes 4-5 minutes and they build twice an hour, we’d see a result of 9 minutes per hour. We broke down the data into the following intervals:
Chart 4: “Time spent on incremental builds during an hour of coding”
The average total time taken by incremental builds in an hour is exactly 6 minutes, but the standard deviation is 10.1, rendering this number unreliable. We can, however, divide the respondents in three quite well defined groups:
- Less than 1 minute an hour. 34% of respondents basically don’t spend any time on the incremental build process.
- 1 to 5 minutes an hour. 34% of respondents spend a “reasonable” amount of time on incremental builds – under 5 minutes an hour. This group spends an average of 3 minutes an hour on incremental builds, which corresponds to about 5% of total development time.
- Over 5 minutes an hour. 32% of respondents spend over 5 minutes an hour on incremental builds. The weighted average in this group is over 13 minutes an hour. This group of developers is spending about 22% of their development time on incremental builds.
Chart 5: “Time spent on incremental builds, per hour, by build tool”
It is clear from this chart that Ant and Maven take significantly more time than IDE builds. Both take about 8 minutes an hour, which corresponds to 13% of total development time. There seems to be little difference between the two, perhaps because the projects where you have to use Ant or Maven for incremental builds are large and complex.
Eclipse is definitely the fastest with 2.9 minutes an hour, which corresponds to about 5% of total development time. Eclipse is the only IDE supporting true incremental build on save using a fast embedded compiler, so these results are expected. It is likely that the true number is even lower, as some of the respondents use Eclipse to launch the Ant or Maven builds (we’ll return to this with the next chart).
IntelliJ IDEA falls in between with 5.7 minutes an hour and about 10% of total development time. It does not have true background compilation and often the IDE builds just launch Ant or Maven behind the scenes.
Chart 6: “Incremental build length breakdown per build tool”
This final chart shows the proportion of respondents in one of the three groups we defined with Chart 4 broken down per build tool.
Finally some things become clear. About 61% of Eclipse builds happen instantly (taking less than 1 minute per hour). We can assume that those are the respondents using compile-on-save, whereas the rest use Eclipse to launch Ant or Maven builds. Considering that 32% of respondents are using Eclipse (see Chart 1), this means that about 20% of all of the respondents use Eclipse with compile-on-save and thus benefit from the instant incremental builds.
The breakdowns of Ant and Maven times are quite similar, with Maven being slightly slower. Moreover the breakdown for IntelliJ IDEA is also similar, supporting the hypotheses that IntelliJ IDEA builds launch Ant or Maven in the background. The proportion itself likely corresponds to the size and complexity of projects, with smaller ones building quickly and larger ones taking build time of over 5 minutes and hour.
It is hard to draw any simple conclusions from this survey, as different groups have different problems, so instead let’s put together the most interesting and reliable numbers we got:
- 56% of respondents have builds that last over half a minute, each.
- 20% of respondents use Eclipse with compile-on-save and thus benefit from the instant incremental builds.
- 34% of respondents spend an average of 3 minutes an hour on incremental builds, which corresponds to about 5% of total development time, or 1.5 weeks per year (40-hour weeks).
- 32% of respondents spend more than 5 minutes per hour on incremental builds. Of the developers spending more than 5 mins per hour, 13 minutes per hour is the average amount of time spent. 13 mins per hour equals 22% of total development time, or 6.5 weeks per year (40 hour workweeks).
- Weeks spent on incremental builds are calculated by assuming 48 work weeks per year (minus vacation) and an average of 5 hours of development time per day.
- Java developers spend 1.5 to 6.5 work weeks a year (with an average of 3.8 work weeks, or 152 hours, annually) waiting for builds, unless they are using Eclipse with compile-on-save.
Tags: Ant, Build Tool, eclipse, IntelliJ, JRebel, Maven, NetBeans







Its easy to fasten maven builds using the maven cli plugin.
Read all about it here: http://www.mojavelinux.com/blog/archives/2009/05/a_gamechanging_maven_2_plugin_you_absolutely_must_use/index.php
Comment by Kees van dieren — October 21, 2009 @ 6:54 pm
Your information regarding IntelliJ is incorrect (or at least not up-to-date). IntelliJ supports incremental compilation just like Eclipse does. There’s a compiler setting where you can tell it whether to use it or not. See this FAQ for more info:http://www.jetbrains.com/idea/documentation/migration_faq.html
Comment by Marc Stock — October 21, 2009 @ 7:56 pm
Netbeans uses Ant to build projects – So how do these 5% of people use netbeans to build projects without being part of the 21% using Ant??
Comment by magnus — October 22, 2009 @ 10:37 am
@magnus They were counted separately. We made a distinction between build tools and IDE tools. For Eclipse we also cannot say with 100% accuracy that JDT is used, maybe the users orchestrate ANT or Maven from it but report it as Eclipse.
Comment by Toomas Römer — October 22, 2009 @ 12:04 pm
The NetBeans IDE has had compile-on-save since NetBeans 6.5.
http://www.netbeans.org/community/releases/65/
Comment by Tori — October 22, 2009 @ 4:50 pm
While this report seems highly interesting I wonder if there are any related reports at all.
Can’t belive there are none!
I’m currently writing my Bachelor Thesis about how to optimize the compile-debug-deploy cycle and did not find a single one (besides this side)
Comment by Martin Dürrmeier — October 23, 2009 @ 1:50 pm
Regarding the IDE as a “build tool”
The F5 Key is not a build process:
http://www.codinghorror.com/blog/archives/000988.html
Comment by Martin Dürrmeier — October 23, 2009 @ 5:29 pm
When comparing ant against maven, the sizes of the projects are usually different. Ant projects tend to be huge while Maven projects tend to be small.
Building your single super ant project is slower than building a single maven project/module. However, building all maven projects/modules is slower to building that single super ant project.
Comment by Franz See — October 28, 2009 @ 3:32 am
This is a very useful study for devlopers who have yet not decided which build tool to use. Since eclipse is more than a build tool and maven and ant can both be integrated into it. it is a clear choice
Comment by Kush — October 28, 2009 @ 1:52 pm
The survey doesn’t take into account Maven is not just a build tool but a project management tool. All other configurations require more work to manage project dependencies. I can count the hours engineers have spent looking for a jar file or trying to figure out what the last guy was thinking when they laid out the project. These are the real time eaters in projects
Comment by Wes — October 29, 2009 @ 12:28 am
Hi, it would be very interesting how much percentage of the maven users use still Maven 1 ?
Comment by Niko Mahle — October 29, 2009 @ 9:30 am
“The average total time taken by incremental builds in an hour is exactly 6 minutes, but the standard deviation is 10.1, rendering this number unreliable. We can, however, divide the respondents in three quite well defined groups:”
You must be joking. An incremental compiler, such as the one in the Eclipse IDE compiles in the background in response to a code modification. Rarely is a complete rebuild necessary, that is, unless you have filled your IDE with lots of crap like Maven, which this website seems to be trying to promote.
Ant is by definition not “incremental”. Why don’t you go back to school, or learn VB?
Comment by what_are_you_saying — January 12, 2010 @ 12:21 am
Ant is frequently cited as ** breaking ** the incremental compiler. Are you people out of your mind? Or just severely “challenged”?
Comment by what_are_you_saying — January 12, 2010 @ 12:23 am
@what_are_you_saying
You have wrong level of abstraction here. By incremental builds we mean builds done in development for the developer to see results and not clean full builds.
You’re splitting hairs by saying that the true incremental builds are Eclipse JDT delta compilations vs ant/maven javac incremental builds. Invoke ant on a source tree, change one file and reinvoke. Only one new file will be compiled (unless the referenced .class files also need compilation).
Ant is said to break the the “incremental” (or the IDE) compiler because once you use command line compilation + IDE compilation you get into trouble. JDT and javac compile enums for example differently, anonymous inner classes can have different numbering scheme, compilation errors can be compiled into runtime exceptions vs not compiling at all. This is the sad story of using 2 compilers and one output path. You run into problems.
We don’t advocate any specific build tool. We like the shortest turnaround possible and the best tools for the specific job. For this survey we tried to cover as many tools as possible.
Comment by Toomas Römer — January 12, 2010 @ 8:25 am
some interesting data on build times for Zeroturnaround http://tinyurl.com/yj8rea9
This comment was originally posted on Twitter
Comment by IanSkerrett — October 21, 2009 @ 3:04 pm
@IanSkerrett: http://tinyurl.com/yj8rea9 “large number of developers that use the IDE as the primary build tool during development” < ACK!!!
This comment was originally posted on Twitter
Comment by kingargyle — October 21, 2009 @ 3:26 pm
Ok this build-related article at http://tr.im/Cy7B makes for an interesting read, but not convinced it is addressing my own build reality.
This comment was originally posted on Twitter
Comment by oisin — October 21, 2009 @ 3:33 pm
“The Build Tool Report: Turnaround Times using Ant, Maven, Eclipse, IntelliJ, and NetBeans”, http://tinyurl.com/yj8rea9
This comment was originally posted on Twitter
Comment by eelzinga — October 21, 2009 @ 5:27 pm
JRebel build survey: http://tinyurl.com/yj8rea9 — mvn eclipse:eclipse ftw!
This comment was originally posted on Twitter
Comment by nadavwr — October 21, 2009 @ 5:59 pm
Build Tool Report – http://bit.ly/AQX5K
This comment was originally posted on Twitter
Comment by jph98 — October 21, 2009 @ 6:14 pm
@caniszczyk I should have double-checked, apparently Ubiquity screwed me here. http://tinyurl.com/yj8rea9
This comment was originally posted on Twitter
Comment by bokowski — October 21, 2009 @ 8:02 pm
Interesting results on this Zeroturnaround survey of incremental builds: http://tinyurl.com/yj8rea9
This comment was originally posted on Twitter
Comment by Brian_Fox — October 21, 2009 @ 9:24 pm
Maven&Eclipse rule: http://tr.im/CBhU
This comment was originally posted on Twitter
Comment by jvanzyl — October 22, 2009 @ 12:39 am
is reading a very useful analisys about build tools http://tr.im/CBhU
This comment was originally posted on Twitter
Comment by pjlucidi — October 22, 2009 @ 2:45 pm
Interesting survey reports: Time spent on Java container redeployments http://bit.ly/vrP6j & builds http://bit.ly/30VDA6
This comment was originally posted on Twitter
Comment by liqweed — October 22, 2009 @ 8:05 pm
The Build Tool Report: Turnaround Times using Ant, Maven, Eclipse, IntelliJ, and NetBeans | ZeroTurnaround.com http://bit.ly/U7if7
This comment was originally posted on Twitter
Comment by myfear — October 27, 2009 @ 6:52 am
http://is.gd/4DSot “1.9 minutes with the standard deviation of 2.8″ yep, build tools are huge time wasters
This comment was originally posted on Twitter
Comment by jillesvangurp — October 27, 2009 @ 7:29 am
Maven is now more popular than #Ant according to http://is.gd/4EiVO
This comment was originally posted on Twitter
Comment by aananiev — October 27, 2009 @ 1:47 pm
Informe sobre tiempos de compilación en Java empleando distintas alternativas (Netbeans, Eclipse, Ant, Maven…) http://ow.ly/x15n
This comment was originally posted on Twitter
Comment by javahispano — October 28, 2009 @ 7:16 am
Survey results about Java IDE and Build tools http://tinyurl.com/yj8rea9
This comment was originally posted on Twitter
Comment by sagaras — October 28, 2009 @ 1:32 pm