Sunday, February 6, 2011

Setting up a Sophisticated (Java) Development Environment - Part 0

I am busy working on a multi-part post for setting up a fairly sophisticated development environment. I will go pretty broad, and the average developer at home will most likely not need a setup like this, but it will still be nice to see what is possible. Your organization on the other hand will most definitely benefit from a setup like this.

For most parts I will focus on getting it right for Java development, but it should be easy enough to adapt to your individual needs.

Currently (on my TODO list) I will be covering at least the following topics:

This will describe how the whole setup should work in an ideal world, which software will interface with what and where, as well as the purpose of the individual pieces of software.

We will cover how to virtualize your development environment, segregating certain pieces into isolation.

Setting up your development IDE
How to set up the Eclipse IDE to interface with the rest of the development infrastructure. This will include the setup of m2eclipse for easy integration with Apache Maven as your build and project management tool. Also, how to set up Atlassian Clover or Cobertura for code-coverage reports. Will also cover Mylyn integration into issue trackers, build servers, etc.

Issue Tracking
How to setup Atlassian JIRA as your issue tracker to help you keep track of what must be done. Also how you can get those JIRA issues to show up right on your IDE workspace for easy access using Mylyn.

Source Code Management
How to set up a Version Control system like Apache Subversion or Git.

Repository Insight and Browsing
See how Atlassian Fisheye can help you keep an eye on your code base.

Source Code Review
Atlassian Crucible to the rescue to help discuss and gather feedback on that difficult-to-implement feature. See how you can get other people to review your code and vice-versa.

Source Code Metrics
How to set up Sonar to help you determine the quality of your source code.

Continuous Integration
This will cover how to set up Continuous Integration with Atlassian Bamboo, Hudson or Jenkins to get your source code built and tested and a regular basis.

Maven Artifact Management
How to setup Sonatype Nexus repository manager to help you keep your maven artifacts in a central location and easily share them with the rest of your team.

How to set up a wiki to maintain the documentation for your project.

Hopefully I will have part 1 up sometime this week.
If there is anything specific that you would like to see covered, please leave a comment.

Also note that although I will be covering a lot of Atlassian products in this series, I am in no way affiliated with them. They just make brilliant products that makes developers lives a lot easier. Oh, most of their products are dirt cheap at US$10 for starter licenses which gets donated to charity anyway. :)


Wednesday, November 17, 2010

Managing multiple maven versions

I just upgraded to the latest version of my favorite development OS by means of fresh install.

This means that I pretty much have to start from scratch setting up all my development tools (Eclipse, maven, nexus, etc etc).

I immediately realized that I have the need to move around between multiple versions of maven, sometimes in separate shells. For this setup, a single symlink to the correct maven install just does not cut it.

Then I came across an article written by Chris Custine on the topic.


Saturday, September 25, 2010

Blogging from my HTC Desire

I have just started experimenting with blogger clients on my android-based HTC Desire.

Published with Blogger-droid v1.6.0

Friday, September 24, 2010

Apache Karaf 2.1.0 Released!

Apache Karaf 2.1.0 has officially been released.

Here is Jamie Goodyear's blog entry about it:

The official announcement can be found here:

Well done Jamie and team!


Wednesday, September 22, 2010

Karaf 2.1.0-RC2 Available For Testing

Seems some people are juggling the-art-of-emptying-the-pool-in-your-basement and cutting Apache Karaf Release Candidates. :)

Jamie Goodyear managed to get a Release Candidate of Apache Karaf 2.1.0 out in the wild. Best you head over to the Apache Karaf staging repository, get the bits and give it a little test run before the release hits the shelves. ;)

Good work Jamie and the rest of the team!


Open Source Software Packages on IBM AIX

I was busy preparing an AIX 6.1 LPAR to act as a Hudson slave today when I needed to have certain open source packages (git, subversion, python, perl, and a whole bunch of other development tools) installed to make my life a bit easier.

I browsed over to IBM's AIX Toolbox for Linux Applications only to realize that some of the applications there are *REALLY* out of date and some applications (Git, Subversion) does not even feature in the download listing. *sigh*

After some more browsing I came across this gem:

It has relatively up to date packages ready for install on AIX using rpm. It also includes packages thats not available for download without a login on the IBM site (Open[SSH|SSL]). And, as a bonus, it links to other sites containing up-to-date packages if it just so happens that you cannot find what you are looking for.

---Jaco"Hello, world!");

Welcome to my blog.

In here you will find (mostly) my ramblings about technology, software development, open source and every day happenings in my life.