Skip to content

Category Archives: Build

building software

Supporting Multiple Environments

One of the longest running debates I’ve watched in the Maven community over the years, is how to best support different configurations for different deployment environments (where “deployment environment” means a QA environment or staging environment – anything other than a local developer build). Some people argue simplicity over the complexity of some of the [...]

Build Pattern: Facade

Let’s face it: Build scripts can age as badly as Steven Seagal. What do you do when yours is needing more than botox and a mud pack? What you shouldn’t do is attempt to rewrite the whole thing from scratch. There’s no guaruntee that it’ll look any better by the time you’ve done that, and [...]

Ant 1.8.0 released

The Apache Ant team just announced Ant 1.8.0.  The most stunning change is that of lexically scoped local properties.  Now, you can keep a property scoped to a target, or a sequential block.  Hopefully this will mean poeple rely less on ant-contrib.   Many people appear to misunderstand the Ant properties mechanism; maybe they are [...]

Continuous Delivery: new book now online

There’s a new book in Martin Fowler’s Signature Series: “Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation” [you heard that here first]. It couldn’t be written by a nicer couple of guys: Jez Humble and David Farley. Both authors have been scribing away on this book for years. The book covers the [...]

Build Refactoring

Build Refactoring: Refactoring is a nice term for making something a bit less crap without changing it’s behaviour. You can slowly refactor a build in the same way you can refactor code. I’ve seen several projects where developers have opted to bin the build and start from scratch. That doesn’t guarantee a better build than [...]

SparkBuild – build optimisation

This is a guest post from Scott Castle of Electric Cloud. I’ve been wanting to get these guys on the blog for a while. Scott has 5 USB drives full of Electric Cloud software, videos, docs and more to give away. All you need to do is tweet the #sparkbuild hashtag, and 5 lucky people [...]

Story: Fan or Die

David Goh contributed this beauty: Back in 1994 or so at my first job, we were building some train control system software. We had a series of mainframes that we were using to test the software on, which all lived in a small room with no extra airconditioning. The only point of transmission between the [...]

What is a Maven POM?

Why I am asking about Maven POMs? I do know, honest. But I often read blog posts or articles about Maven and wonder about the language being used. There’s some very domain specific terms in use here. So I decided to offer some definitions for people starting out with Maven. Today, we start with POMs. [...]

Build Pattern: The Captive Build Tool

Check your build tool into your version control system. Ideally you’d do this in a relative location to your project(s). That way you can have a go.bat or go.sh: a one line wrapper script to call the correct build tool from your project. Don’t get clever. This should be the simplest script you can manage. [...]

Build Refactoring: Extract Target

Your build files probably need some TLC. Sorry. It’s true. If you’re lucky enough to work on a project with clean code (and let’s face it, most codebases aren’t too pretty), then you’re even luckier to have a nice clean build. Wait! Don’t go getting upset, I can help you. I’ll be introducing some build [...]