Maven Native Packaging

Maven plugin to work with code built externally to Maven, making use of Maven's dependency management and artifact publication tools only. This can be used, for example, to package projects that are maintained in arbitrary development environments and built with tools such as "make" or "msbuild".

Artifacts are always ZIP files with the following structure:

This folder structure abstraction makes it possible to unzip an artifact and simply update appropriate environment variables (for example LIB, INCLUDE, PATH) to have it consumed by the build system. Similarly the outputs from arbitrary build layouts (for example a Visual Studio Solution) are handled by configuring the plugin to search for files in the right locations.

A project packaged with this plugin, on Windows, will typically run a file called build.bat and then archive files created in target\dll, target\bin, target\lib, and target\include into a ZIP artifact as described above. When such an artifact is consumed by another project, the contents will be expanded into a dependency folder so that they can be included into source code, linked against, or executed.

This plugin can also be used to package files that were built, or supplied, through other means. By suppressing the build goal and specifying exact paths to executables and/or libraries to be packaged then it is possible to package items such as JNI header files or arbitrary Windows utilities that can then be made available to projects that need them at build time.