A real Build Refactoring, in the wild

by simpsonjulian on May 23, 2008

(image taken from A Princesses photostream)

As a build manager I have often looked on at my developer peers with a little envy. It’s a niche position, which might explain why tools seem to lag behind sometimes.. There’s plenty of editors out there that one can edit build files with; some you’d even want to use. But refactoring is something I miss. And that’s not just because I wrote an article on refactoring build files: it’s a genuinely useful technique that would make me more effective.

Anyhow, I feel a little better that there’s one authentic build refactoring available in the EAP version of ReSharper 4: Introduce variable. On Friday I did actually introduce some variables (well, properties) in a Nant build file that I was looking at. Resharper did tend to throw exceptions, but I suppressed them and it soldiered on. I had a look at the latest IDEA and Eclipse releases yesterday and could find no build refactorings. Still, it’s a start.

Share with the group:
  • Digg
  • del.icio.us
  • Facebook
  • DZone
  • LinkedIn
  • Slashdot
  • StumbleUpon

Related posts:

  1. Build Refactoring Build Refactoring: Refactoring is a nice term for making something...
  2. Ant Refactoring Ant isn’t what the hip kids are using right now....

Related posts brought to you by Yet Another Related Posts Plugin.

{ 1 comment… read it below or add one }

1 Nat Pryce May 27, 2008 at 8:15 am

IntelliJ can do some simple refactorings of Ant scripts: extract property, rename target, rename property, etc.

But refactoring of Ant and Nant is very difficult because they have no consistent syntax or semantics. They are just quick hacks that have grown kludge by kludge into inconsistent pseudo-languages.

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous post: Deploying: Why artifacts are your friend

Next post: Ant Best Practices: Use properties for configurability