I’m giving a small “why Gradle?” presentation to a standards board in my company. The online docs are useful, but one thing I wanted to get was a list of major open-source projects that use Gradle by default.
The ones I’m aware of are: * Spring framework * Hibernate framework * AOSP (Android Open Source Project)
I also believe that the default recommended build process for Android applications is also Gradle, correct?
Assuming my list is accurate for what I have, is anyone aware of any other major open-source projects that default to a Gradle build, or any major application frameworks that assume Gradle as a default?
OSS: Groovy, Grails, Apache Tapestry, Mockito, all libgdx based projects, all Netflix OSS projects, and many more. One way to find more projects is to search GitHub for ‘build.gradle’. http://www.gradleware.com/ lists some of the companies that make heavy use of Gradle. Gradle is the new official build tool for Android and powers Android Studio, Google’s new Android IDE.
Concerning that search on Github, I’m wondering about the numbers I’m seeing. I tried searching for several related terms, and these were the counts I found:
- build.xml: 228 * pom.xml: 107 * build.gradle: 372 * makefile: 1619 * gruntfile.js: 31
Considering the many thousands of Github projects, these numbers seem low. Am I missing something?
Searching for ‘build.gradle in:path’ gives 142k code results and 374 repository results. Not sure how accurate these numbers are, but the latter seems low.
(I thought I posted this response, but I don’t see it now.)
This is exactly my point. I don’t see how it could be that low.
It’s also not clear to me exactly what the “repository” unit refers to. If that can refer to cloned repositories, I wouldn’t be terribly surprised if there were 374 clones of just the Gradle project itself (ok, maybe an exaggeration).
I’ve posted a couple of queries about this metadata, one on SO and one to a general info mailbox on Github.
After talking to someone who works at Github and refining the search (putting the filename in double quotes), I end up with the following numbers:
- build.xml: 494528 * pom.xml: 806788 * build.gradle: 142057 * makefile: 21704153 * gruntfile.js: 333685
Unfortunately, this doesn’t make a very strong argument for the popularity of Gradle. I guess I’ll be leaving this information out of my presentation.
I’m not sure I would. That is pretty good adoption considering how long Ant and Maven have been around vs Gradle. The metric that would be more useful is the adoption rate, but I’m not sure Github keeps these kinds of statistics over time. A search on google trends is probably another good indication of this.
I verified that Github doesn’t have this history yet. The same person at Github who helped me get this data also mentioned Google Trends. Ironically, it’s difficult to compare this to trends for the others, as the others all have names that conflict with other usage.
Were you able to get statistics on the number of repos that contain a ‘*.gradle’ file, versus simply the total number of files. Keep in mind that in Gradle, you need not create a build file for every subproject, whereas in Maven, every module must have a ‘pom.xml’. That could contribute to the disparity. Additionally, you are not required to call your build scripts ‘build.gradle’.
Ok, finally, I think I have a better github search string, and results that seem more reasonable.
The required search string looks like this:
“build.gradle” in:path path:/
This searches in path names, and only path names at the root of a repository. The resulting counts for this and related build tools are the following:
- build.xml: 53,756 * pom.xml:
41,820 * build.gradle: 50,861 * makefile: 325,845 * gruntfile.js:
By the way, I’ve since found that doing this kind of search on github is unreliable. Github will arbitrarily truncate any search that is “taking too long”, with no clear definition of limits. The same search will return effectively randomly different numbers running from day to day. The feature wasn’t really designed to get accurate counts.
I’ve asked people with Github to help me get more accurate numbers, but this hasn’t happened yet.
To be precise, it’s the official build tool for Android applications. The AOSP is still a ‘make’ build.
Pardon me, but what you trying to achieve actually isn’t based on a honest idea. You want to demonstrate, Gradle is used by many projects, and the conclusion you want to provoke is: See, Gradle is a good thing.
Besides,I think Maven base projects still are dominant in OSS. But, does this tell anything about Gradle’s “goodness”? It even doesn’t tell “Maven is good”.