This post originated from an RSS feed registered with Ruby Buzz
by Eric Stewart.
Original Post: Ruby, Maven 2, and software project management
Feed Title: Ponderings On Ruby
Feed URL: http://blog.eric-stewart.com/category/programming-ruby.rss
Feed Description: This is the Ruby related section of Eric Stewart's weblog. These entries will be the commentary of a long time Java/C++ programmer that started exploring Ruby in 2003.
It was less than 2 years that I was managing a team of software developers that were responsible for maintaining a slew of internal projects. This was a Java shop, and not only did my team have challenges, every development team in the company struggled with build scripts (this meant Ant), project layouts, dependency management, documentation, publishing builds, etc.
In an effort to help my group (and those we interacted with), I was pushing for a uniform solution for our projects and preferably for all company projects. At the time the most buzz was around an Apache project called Maven that was created to address just the pains we were experiencing. We never got the approval to go ahead with its adoption, and suffered the same pains till the end.
Fast forward to present day.
I have been doing Rails development for the past 7 months, and most of those pains don’t exist. Much of this is because:
* Rails projects have a standard layout and structure (again convention, where Maven would offer configuration)
* Rails’ default Rake tasks do very good things for generating documentation, running, tests, etc.
* throw in Switchtower and publishing your Rails app is a piece of cake!
Now Maven is useful for just about any Java development effort, while my examples are kind of Rails specific. If you’re doing generic Ruby development (or development in any other language) you have more work on your hands.
The point of my little tale is to point out that Maven has now been recreated as Maven 2, an effort to shed some of the warts of the original Maven implementation. An especially interesting development is the creation of a Ruby Mojo Support for Maven 2 which allows using Ruby to write Maven tasks.
The author of the Ruby Mojo plugin claims that Jelly (the xml based scripting language used for Maven 2) was no good at all, and the pure Java tasks of Maven 2 are better but often not the best way to implement build system tasks. I would agree that Ruby is probably a much better language for build system tasks.
All I can say is that this sounds like a huge step in the right direction for the right type of environment. We would have killed for this several years back in the environment we were in. I’d say this combination of Java and Ruby could by a killer project management solution for Java shops (and possibly many other platform environments).
What I want to know, though, is when a simpler more general Maven equivalent will be written in Ruby.