'. '

Maven

From APIDesign

Revision as of 19:18, 13 September 2009 by JaroslavTulach (Talk | contribs)
Jump to: navigation, search

Apache's Maven is an advanced, high level concept build system. Compared to Ant or make, it feel like a modern programming language, compared to assembly. While the other build systems describe step by step, what shall be done and how, the Maven is build around automatic management of dependencies and configuration of various plugins. It is kind of module system, in fact.

Is Maven ready for Desktop?

In work, while working on NetBeans, I rely mostly on Ant. However for my Saturday night project, I decided to try Maven. It's management of dependencies is really awesome. I do not need to take care about locations of actual libraries, I can just spell their name and version and the Maven downloads them automatically during the build. Perfect, I love this part of the system.

On the other hand, compared to Ant, I have huge problems to configure the system to do exactly what I want. For example, I want to package my application (two my own JAR files, plus all the dependency JARs) into a single ZIP file that everyone could download. This is not easy at all. The only tool that does something similar seems to be shade plugin. But its functionality is still far from optimal.

It seems to me that development of simple Java desktop applications is not really well supported by current Maven plugins. Packaging to a compound ZIP is unsupported, execution of a main method is supported, but not by official Apache's plugin. It seems to me that Java desktop is second class citizen in Maven.

On the other hand one can find tons of tools for server side. Packaging to WAR file is possible (this is almost the ZIP file requested above, and I even wanted to create WAR instead of ZIP, but it does not work, it requires some web.xml file, which I obviously don't have). Execution on glashfish, grizzly, etc. have their own plugins and thus are easy to start with.

All this leads to me following question: is Maven really ready for development of Java desktop applications?

Personal tools
buy