It seems there is a lot going on about dependency management and building (Java) software lately. Is it just me or is this something we need to resolve at a different level. Certainly Ivy is pretty cool, as Colin mentioned and after I had a look at it I certainly found it better than Maven’s dependency management features. The fact that it’s capable of resolving transitive dependencies is something we’ve been looking for for ages already.
But then again, is a good dependency management tool and a decent amount of Ant scripts going to do the job. I suspect not. My question is: we’ve been doing this stuff for sooo long now already (when did Ant first arrive, was it 2000, I can’t even remember) why has NOBODY ever figured out how things should really work, from a developer’s point of view as well as from a release management point of view and a customer’s point of view. Arjen told me (after he visited the .NET developer days in Holland last week) the new Visual Studio Enterprise Edition (Arjen, maybe you can elaborate here??) includes a continuous integration tool, the ability to configure workflow before a commit happens (no comitting of code before all tests are run) and much more stuff like.
From a developer’s point of view I’d like the following:
- Being able to import my project in any IDE (Eclipse or IDEA that is) without any custom stuff (so please, no
maven idea) - Develop code and run tests in my IDE
- Create and deploy one or more artifacts to one or more environments
- Run integration tests in my IDEA (ooops slip of the …)
From a release management perspective I’d like to see the following:
- Have a continuous build that
- reports on any errors, glitches and out-of-the-ordinary situations
- generates artifacts and deploys them to some environment
- runs all tests
- creates a release of the software specific to the environment I’m using
- sends an email to all involved in this successful or failing build
- Have the ability to download a successful build and deploy it on any environment (staging, production)
- Being able to identify a successful build as being the final result of an iteration (a version)
- Being able to roll back to any previous release
Well, is that all? That shouldn’t be too hard should it
? Well, at the moment Maven doesn’t take the right approach (as far as I’m concerned) and Ant is too fine-grained to make things usable at a higher level. All it leaves us is the option to have a common build library with all kinds of Ant scripts that we can import from a pre-defined location (as of 1.6). No overriding, no extending, no etcetera.
A couple of interesting other articles / posts:

We have a set of standard ant scripts we just import into every project, and it works great. We rarely have to change a thing for a new project. When we do, we take advantage of ant’s ability to auto-extend a task. It’s very nice!
I can’t figure out if ant can from the classpath. Then, all we’d need is a .jar of our ant build instructions. Now that would be sweet!
The bad part is, of course, that *my* scripts are different than *your* scripts. We really should be standardizing on this, as you say.
free sprint ringtones
free sprint ringtones It has been otherwise since I carried, for my comfort and misreckon, the kelp-geese of my b
Psychic Advice: Free Psychic Advice. Live Psychic Advice. Psychic Advice Florida…
Once the seeker both participate. This allows psychic advice a …
Informative read, thanks
Thanks you for highlighting this…
I love them! ;DDD
You are THE BEST!!!