The NAR plugin for Maven allows you to compile native code (C++, C and Fortran) on a number of different architectures (Linux, Windows, MacOSX, Solaris, FreeBSD, ...) and with a number of different compilers/linkers (g++, Microsoft Visual C++, CC, ...) The output produced is wrapped up in Native ARchive files (.nar) some of which are machine independent (-noarch), while others are machine specific and thus depend on a combination of machine architecture(A), operating-system(O) and linker(L) identified as AOL. These nar files can be installed in the local Maven repository and deployed to a standard Maven (web) server, using the standard maven-install-plugin
and maven-deploy-plugin
.
Usage
In your POM:
<build>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.5.1</version>
<extensions>true</extensions>
<configuration>
...
</configuration>
</plugin>
</plugins>
</build>
Of course, it is recommended that you use the latest version.
What you put in the <configuration>
section will depend on your build; for ideas, see:
Documentation
Community
What about maven-nar-plugin?
This is the official maven-nar-plugin
project, renamed to nar-maven-plugin
as per Apache Maven's requirements.
Alternatives and Complements
- Native Library Loader which integrates with NAR
- Native Maven Plugin from Mojohaus
- Java Native Loader
- Gradle Native