(image taken from slashcrisis’ photostream) Today I’m just going to share a pet hate: poor target names in build files. Yes, that’s scratching the surface: there’s plenty of other things to get wrong in your build. But today’s gripe is target names. Here’s an anonymised example from a real project: <?xml version=”1.0″ ?><project name=”project” default=”tests” [...]
Nat Pryce left a comment on my post A real BuildRefactoring, in the wild: IntelliJ can do some simple refactorings of Ant scripts: extractproperty, rename target, rename property, etc. But refactoring of Ant and Nant is very difficult because they have noconsistent syntax or semantics. They are just quick hacks that havegrown kludge by kludge [...]
(image taken from SideLong’s photostream) Welcome to the final Ant Best Practices post. The last topic of the series is wrapper scripts. Most projects end up having one or more of these. The very first Java project that I did had about a dozen of them. They generally look like this: #!/bin/sh/usr/bin/ant -f myGreatProject.xml $1 [...]
. Last time, we discussed the ZipFileSet. Today’s article is much more important – it’s a subject very close to my heart: only dong necessary work. If you don’t execute the clean target, (do tell me your build has a clean target and you didn’t change any of files in your project, what should happen? [...]
(image taken from the superbly named MasochismTango’s photostream) Welcome to the lucky thirteenth edition of Ant Best Practices. You probably guessed this one: Use the ZipFileSet type when you make a zip file in Ant. This one slipped past me recently. We were working on a web project and the developers added a cache-busting feature [...]
(image taken from Clearly Ambiguous’ Photostream) We’re back to the best practices this weekend with 12 of 15: Use Ant as the Least Common Denominator. What are we talking about? The answer is here. What does the common denominator mean? There’s generally a conflict around this on software projects. I’ll explain: The developer wants to [...]
(image taken from Rocket Raccoon’s photostream) Amazingly, it’s article 11 of 15 in my series on Ant Best Practices. Today’s practice is ‘Use version control’ and I can’t help but wonder if this one hasn’t dated a little. When the original article was written, Subversion didn’t exist, Perforce wasn’t free, and most people used CVS. [...]
(image taken from losiek’s photostream) Welcome to the first post of the Build Doctor that isn’t in the Planet TW feed. If you’re reading this via RSS: thank you. Thank you for subscribing. The point of this exercise was to actually know who my readers are. And now I know. Back to the post. I’ve [...]
(image taken from Heldr’s photostream) Welcome back to the Ant Best Practices series. All the other posts are here, if you’ve just joined us. Today, it’s about keeping the build process self contained. What does this mean? When you check a project out and build it for the first time, it should take a few [...]
(Image taken from Nesster’s Photostream) I think it was 2002 when Dan North took me under his wing and showed me the location attribute of Ant. That was then. Now, I’m doing a lot of .NET build engineering. And I’m dying for this feature. Here’s an Ant build to demonstrate: <project default=”properties”> <target name=”properties”> <mkdir [...]