Indico has been updated to v3.3. See our blog post for details on this release. (OTG0146394)

Sep 2 – 9, 2007
Victoria, Canada
Europe/Zurich timezone
Please book accomodation as soon as possible.

Usage and Extension of Maven to build, release and distribute Java and Native Code Projects

Sep 3, 2007, 8:00 AM
10h 10m
Victoria, Canada

Victoria, Canada

Board: 52
poster Software components, tools and databases Poster 1


Mark Donszelmann (SLAC)


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.

Primary author


Presentation materials

There are no materials yet.