Speaker
Mark Donszelmann
(SLAC)
Description
Maven is a software project management and comprehension tool. Based on the concept
of a project object model (POM), Maven can manage a project's build, reporting and
documentation from a single XML file which declaratively specifies the project's
properties. In short, Maven replaces Make or Ant, adds the handling of dependencies
and generates
documentation and a project website. Maven is an Open Source tool written in Java and
mainly used for Java. It can easily be extended by writing common or project specific
plugin modules.
One of Maven's main features is the handling of your project's (transitive) binary
dependencies. A simple declaration that your project needs a library and that
library gets automatically downloaded from a nearby mirror of the Maven repository
and installed for local usage. While downloading platform-independent Java libraries is
relatively straightforward, Maven did not originally provide any support for the harder
problem of dealing with platform specific native code dependencies. We extended Maven
with the Native ARchive Plugin (NAR) to allow it to compile and link Native (C, C++ and
Fortran) code and handle Native libraries as dependencies.
In this talk we will describe the main features and benefits of Maven, how these
benefits can be extended to native code using the NAR plugin, and describe how we use
Maven as
the project management tool for both Java and C++ components of the FreeHEP library.
Author
Mark Donszelmann
(SLAC)