We are ON for this month’s Atlanta Groovy/Grails meeting, and I’m happy to announce that we have a special treat for everyone this month. This month’s topic is focused on using Gradle for doing software builds. We’ll have a team of engineers who moved a massive project from ANT to Gradle – so bring your tough questions on doing software builds and pick their brains for best practices.
Details for the meeting:
Who: Steve Appling, Alex Carman, Mike Hunsicker, John Murph & Melanie Pfautz
What: A Gradle Talk: From Selection Through Implementation
When: Wednesday March 24, 2010 – 6:30PM
Where: Matrix Resources, 115 Perimeter Center Place NE, Suite 250, Atlanta, GA
Food: Pizza will be provided courtesy of Matrix Resources!
A Gradle Talk: From Selection Through Implementation
We were running into some problems with our Ant build system as we grew. Certain build combinations didn’t work as expected. Adding a new module to the Ant builds was a pain. As our project grew, we wanted to have some grunt work automated through the builds. But, Ant is very procedural and does not provide good mechanisms for sharing important knowledge amongst different tasks. For example, each task that needed a module’s dependencies tended to restate all the dependencies because the built in Ant tasks that they used needed the information in a different way. This made it very hard to define the dependencies once and reuse them. If Ant were a programming language it might be possible, but Ant is not. What we needed was a real build tool.
Why Gradle? First, it’s a declarative approach to builds. A build says, for example, “I have Java source, and want my jar to be called foo.jar”. From this, Gradle can find the source (if you follow the Maven conventions, or you can tell it where the source lives). Then, it knows how to compile your source (including tests). It can run your tests, and bundle your compiled classes into a jar named foo.jar. You don’t have to tell it how to do these standard things, it just knows (like Maven!). You can also tell it how to do other things it doesn’t already know how to do, and you can do it with a true turing-complete programming language.
Steve is the Research Manager at Automated Logic Corporation and gets to investigate new technologies and other cool toys for a living. He has a Bachelor of Electrical Engineering degree from Georgia Tech. He has done everything from PC hardware design, embedded systems programming, product management, to web based user interfaces. He has been programming professionally for over 25 years in a variety of languages. Steve is one of the Gradle committers.
Alex Carman, a Development Assistant intern on the Continuous Integration Team at Automated Logic Corporation, is responsible for managing the build servers and assisting with the continued improvements of the Gradle build system. His experience includes migration of a new Gradle build system, Java development, Groovy, C++, HTML, PHP, SQL and virtualization solutions. Currently he is pursing a BS in Computer Science at Southern Polytechnic State University; previously graduated with honors from Georgia Perimeter College with an AS in Computer Science.
Some guy. Programs computers. Likes walks on the beach and science fiction, but hates the beach.
John is a member of the Research Team at Automated Logic Corporation. When not sitting around and talking, he likes to think about writing software. The actual writing of said software is difficult, however, so not much of that gets done. He has been instrumental in finding new ways to break the build, and can be frequently seen cleaning his desk. He purchased a BS in Computer Engineering from Auburn University.
Melanie heads up the Continuous Integration Team at Automated Logic Corporation, a division of Carrier Corporation, in Kennesaw, Georgia. During her 7 years working with the build systems, the organization has transitioned from Ant to Gradle, changed installer solutions, implemented IntelliJ’s TeamCity continuous integration server, and restructured source code toward Maven standards. Melanie is currently enrolled in the MBA program at Georgia Tech and holds a BS in Computer Science from Kennesaw State University.