Tuesday, March 25, 2008

What build tool to use for java development?

People who checkout the XPontus XML Editor's code in the subversion repository expect to open it as a simple Java project in their Java IDE. Well, it's not a simple Java project, it's a Java maven based project.

I use Netbeans and I don't have any problems with Maven. Eclipse and IDEA plugins for Maven are "ALMOST USELESS" compared to what Netbeans provides in terms of usability and flexibility...

I've been more than happy with Maven( manage multiple projects and their dependencies, compile, run , test the applications, generate some websites, etc.)

I do believe that simple Java projects or simple multi-projects ("with few projects as dependencies") don't require an advanced build tool : use your IDE to manage the java classpath or create a simple Ant build file and you're done.

Lately, I've been looking at Apache Ivy as a replacement for Maven to build XPontus. Maven is preventing new members to get started quickly(learn maven, understand its usage in XPontus, etc.). I don't want to have to say all the time something like "Use Netbeans to ease the pain if you never used Maven..."

I don't mind using IVY or Apache Ant when starting a Java project. However if the project is already entirely built using Maven, it sucks to switch to another build system.

Personally, I think about switching toIvy as a regression at the moment:
  • Most IDEs don't have a "fantastic IVY support". It does work but that's it.
  • If most Java developers don't use Maven, do they use Ivy? I don't think so... The learning curve is shorter than Maven but still...
  • Ivy won't do the Maven black magic :-( ... (build some website pages, etc.)
  • Multiproject support?? Will I have to go back to the standard way of creating multi-projects in popular Java IDES?? I'll need to read about that.
The creator of IVY made some intersting comments on IVY vs Maven :
http://xhab.blogspot.com/2006/09/antivy-vs-maven-my-biased-opinion.html

New members of XPontus team will probably be able to use Apache Ivy easily. I guess I'll need to add in capital letters "YOU NEED THE IVY IDE PLUGIN TO OPEN THE PROJECT". I don't really expect lots of people to read it or to read instructions on how to open a XPontus as a Java project. Most developers know how to open a standard Java Project in an IDE, so they'll probably think "yeah must be some newbie stuff..."

No comments: