Fork me on GitHub

NAR Dependencies

Dependencies on other NARs are handled by the standard maven dependency mechanism. The type for NAR files is nar. The main nar file is equivalent to a jar file, but with some nar specific information in it. The other nar files are always published as attached artifacts to the main nar artifact. A nar dependency is declared in the following way:

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>dependent-group</groupId>
      <artifactId>dependent-artifact</artifactId>
      <version>dependent-version</version>
      <type>nar</type>
    </dependency>
  </dependencies>
</project>

As of version 2.1.x the type needs to be declared as "nar". Maven will automatically download this nar file for any goal that requires it.

The NAR plugin knows this is a true nar dependency by looking inside the nar file for a properties file with the following name:

META-INF/nar/groupId/artifactId/nar.properties

This file is normally generated in the nar-package goal. TBD there is no way to include a hand-written file.

The file may contain the following properties:

Property Default-Value Description
nar.noarch Comma separated list of architecture independent nars to download. Each entry consists of groupId:artifactId:type:classifier, for example: ch.cern:cernlib:nar:noarch
nar.static Comma separated list of static nar files to download. Each entry consists of groupId:artifactId:type:classifier. ${aol} can be used to be replaced by the current aol value, for example: ch.cern:cernlib:nar:${aol}-static

TBD more values are possible