Monday 30 April 2007

The Ideal Java Development Environment - Post 1

Starting a new job in a few weeks, my mind has slightly been drawn to what is the quickest way to setup a fledgling company with a stable build system and a structured project and development lifecycle for Java.

Now many of you will be very observant to note that I have tagged few big issues in that first paragraph. Yes, that is the problem.. or the focus of my attention for a short number of days (what, he's mad, setting up something in a short number of days).

So where do you start ?

My new company I am working for primarily exists to raise funds for charities, technically we are not non-for-profit, because it is not 100% of profit which goes to the charities, but let's just say it is more that 40%.

So .. costs are critical, we need to keep them fairly low, and software development certainly sits at the high end of draining resource (money).

Of course being a major supporter, user and contributor of Open Source, it will sit majorly within the realms of my new job.

At a brief glance, these are the items for which I either (a) know intricately and will bring to the table, or (b) know I need to look at them.

So lets start shall we, here is a quick run down of items I will either be using, or will investigate ..
Build and Development
  • Eclipse - (for many years now)
  • Maven 2 - Without a doubt
  • Subversion - goes without saying
  • Continuum - (CI - Continuous Integration) - Would love to use Bamboo (atlassian)
Some things I want to take a look at (suspect they may be of benefit)
  • Bamboo
  • Buildix (ThoughtWorks Out-of-the-Box of all the above)
  • Tracs (it's in the Buildix platform)
  • Artifactory for Maven - Definitely a Winner here
Some standard "stuff" I will always add to the Java projects
  • Checkstyle via Maven
  • Maven Site Build (customise it)
  • Spring (Security, JDBCTemplate)
Some stuff I will certainly look at
  • Maven Dependency Graphs http://philhoser.blogspot.com/2007/01/dependency-graph-for-maven-2.html
So that is a brief list of items that will form the new "bucko" workshop.
I'll keep you all updated on this as I grow this area.
There are a few things I am missing there, but I'll keep you all posted on that front.

Oh, one last thing I do want to add it, when the team becomes >=2 developers.
and that is hooked up to the CI .. build notification.

A lot can be said on this topic. Here is a place for it.

http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi

I have seen a whacky lamp at a lighting shop in Balgowlah, hideous. $100 or so .. and it would be great to "turn" it on, when it all goes bad. It's a foul looking angel on the back of a dragon. Perhaps the ubiquitous (sp?) lava lamp will do.

I will post the steps I take in the next few postings to detail what I setup. But It wont be for a few more posting yet because I am still with my current (and fantastic employer) so need to be honourable there.

1 comment:

Unknown said...

Thanks for your comments on Artifactory,

For maven dependency graph you can look at dep-analyzer

And for customizing maven plugins and lifecycles you can have a look at jade-plugins

We did this seminar with presentations that may help you.

Good luck anyway with your "best-of-breed" development environment, it's a never ending story.

Current 5 booksmarks @ del.icio.us/pefdus