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