[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Prefered build system



On 3/23/12 6:47 AM, Matthias-Christian Ott wrote:
Hi,

I have been assigned to a legacy Java project, which uses several messed
up Ant buildfiles. I'm going to replace or clean up the build system as
part of project maintainance.

I read that Maven (similar to other language-specific package
management software) has been a problem for Debian for a long time
and that Debian struggles with the general Java software packaging
mentality which often ignores system wide package managers. One of the
goals for the project is to make software packaging and distribution
easier and automatic. Gentoo and Fedora seem to support Maven and Ant,
but prefer Ant. Is that also true for Debian? If so, are there any
preferred build target naming conventions, like [1]?

Regards,
Matthias-Christian

[1] https://wiki.apache.org/ant/TheElementsOfAntStyle

I can tell you that of all the projects I have worked with for years and all those my friends work with, I have yet to find anyone who uses the Maven that is packaged with a distribution. The common practice is to have Ant + Ivy, Maven, or Gradle + Ivy using a repository outside the OS package management system's own packages. Coupling a Java project to using the Java libraries packaged with the current version of your operating system's offerings is generally avoided, as you invariably need a library or a version of a library that is not available.

Maven is pretty handy when you lay out your project using the conventions that Maven chooses, but getting used to Maven's Build Lifecycle[0] is often an adjustment. I often prefer Ant + Ivy, mostly because Ant is so straightforward and Ivy gives me the transitive dependency management that was always Maven's one cool feature which made people put up with the build lifecycle hassle and the need to create Maven plugins for even the most trivial tasks at times. You can google "maven versus ant" to see a number of writeups about the tradeoffs between those choices.

[0] - http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Regards,
--
Barry Hawkins
All Things Computed
email: barry@alltc.com
twitter: barryhawkins
blog: http://barryhawkins.com/blog
site: http://alltc.com


Reply to: