Skip to content

Category Archives: Build

building software

Simon Stewart on WebDriver’s build system

WebDriver creator Simon Stewart knows a thing or two about building code. So I was intrigued when he mentioned that he’d written a grammar for Rake, to enable building Java code. Replacing Ant with Rake has been a compelling idea for some years now. Until now I wasn’t convinced that you weren’t going to have [...]

Zero tolerance

This has been surprisingly useful at keeping my JS code clean. desc “Check for tabs and trailing spaces” task :crapcheck do Dir["public/**/*.js"].each do |f| next if f.match(/^lib|resources/) text = File.read(f) raise “Tabs found in #{f}” if text.match(/\t/) raise “Trailing spaces found in #{f}” if text.match(/ $| $/) end end The tab check is useful because [...]

The Build AssemblyLifePipeLoom

Dave Farley, co-author of Continuous Delivery (I got my copy last month – more on that in another post) commented on a blog post about the origins of the term build pipeline. He might well do, as it was his idea to make the pipeline concept central to the book. Being a bit of a [...]

Should you move to Maven 2?

I’ve seen many a company try to migrate from Ant to Maven with varied success.  There is a change in mindset that has to come about when making the transition.  Here are some of the highlights. Standard Findings Monolithic build structure This is the first big shift in thinking.  Typical (obviously, not ALL) Ant projects [...]

You Could Totally Use a Dependency Manager

Look who just got an article on CMCrossroads  - me.    There’s a reasonable amount of crossover in our audiences, so I’m glad to have this done.  Thanks to Bob and Jonathan for getting this out there. You Could Totally Use a Dependency Manager.

Separation of concerns in Ant

There’s nothing wrong with Ant. No, really! True, there’s some nasty Ant files out there. Perhaps that’s because we often treat our build as a second class citizen. How do you keep your build files from becoming bloated and hard to maintain? Break ‘em up! I’m going to use a classic problem to illustrate this: [...]

Supporting Multiple Environments – Part 4

In the final installment, I’m going to talk about how to share configuration between developer level environments on through to clustered or “stack” type environments. Recycling Configuration Ok – so now your configuration is its own standalone Maven module with its own series of branches and build process.  But what if there are shared items [...]

Supporting Multiple Environments – Part 3

Supporting Multiple Environments – Part 3 (part one and two) In this installment, I’m going to cover the configuration storage mechanism for this separate configuration jar approach. Configuration Storage With the approach listed in step two, it’s easiest to manage the actual values via property files, stacked up in a layered approach.  Here’s what we [...]

Is Maven agile?

Is Maven agile? Here’s my half-assed reasons why: agile methodologies can uncover issues in your organisation. I’ve got a pet theory that Maven will do the same for your code.  Some build tools allow you to paper over the cracks of your code and tests.  Tests too slow?  Then parallelize them.  Code won’t compile cleanly?  [...]

Supporting Multiple Environments – Part 2

(see part one of this series here) In this installment, I’m going to cover the four cheap-fast ways I’ve seen discussed to generate configuration for your application. Managing Configuration There are a few ways I’ve found or seen discussed over the years for managing the configuration portion of a deployment (local or otherwise).  I don’t [...]