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:
bin/
- architecture independent, or architecture implied, binaries (such as executables/scripts)bin-XXX/
- architecture XXX
specific binaries (such as executables/scripts)lib/
- architecture independent, or architecture implied, static librarieslib-XXX/
- architecture XXX
specific static librariesinclude/
- header files and other resources needed to consume the package./
- anything else (such as license files)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.
Copyright (c) 2015, all rights reserved.