Goals available for this plugin:
Goal | Report? | Description |
---|---|---|
erlang:compile | No | This Mojo compiles the projects erlang sources. |
erlang:coverage | Yes | Generates a test coverage report with: project summary, showing the
number of functions, clauses executable lines and their test
coverage percentage. A module list with individual coverage reports
and an extensive source code report, with lines annotated in red or
green, showing the exact coverage.
ISSUE If a test purges or unloads a module to do coverage for, the coverage compilation information will be gone and the coverage report will fail. |
erlang:dialyzer | No | This The |
erlang:dialyzer-release | No | This |
erlang:edoc | Yes | This Mojo will generate source code documentation for
an application. |
erlang:extract-dependencies | No | Unpack erlang-otp or erlang-std
dependencies. This will unpack all dependencies of this
MavenProject into the target/lib
directory. This is done only in case the dependency has changed
since the last unpack process. |
erlang:generate-release-resources | No | Copies all resource files into that target directory structure.
Copied resources contain:
scriptOptions parameter. In order to
manage the project over the project pom there is the possibility to
let the Mojo automatically fill in values from the
project pom into the .rel file. This can be done by
using one of the supported variables into the release file. Below
is a list of supported variables and their substitutions:
|
erlang:generate-resources | No | Copies all resource files into that target directory structure.
Copied resources contain:
|
erlang:generate-test-resources | No | Copies all test resource files into that target directory
structure. Copied resources contain:
|
erlang:help | No | Display help information on maven-erlang-plugin. Call mvn erlang:help -Ddetail=true -Dgoal=<goal-name>to display parameter details. |
erlang:initialize | No | Mojo that starts the erlang node used as a backend for
rpcs made by the plugin. The node will only be started if it is not
already running. The node will be shutdown when the executing JVM
exits. This is done by a Runtime.addShutdownHook()
which will only be added once each JVM execution. |
erlang:package | No | This Besides that this
The resulting application resource file as well as the application upgrade file will be checked for plausability. |
erlang:package-release | No | This Mojo packages/creates a release
.tar.gz using the erlang systools
modules. The build can be customized by providing additional
options through the tarOptions parameter. |
erlang:reload-dependencies | No | Mojo that first purges all dynamically loaded modules
on the backend node and reloads the modules provided by (unpacked)
dependencies. |
erlang:reload-release-dependencies | No | Mojo that first purges all dynamically loaded modules
on the backend node and reloads the modules provided by (unpacked)
dependencies. |
erlang:reload-test-dependencies | No | Mojo that first purges all dynamically loaded modules
on the test backend node and reloads the modules provided by
(unpacked) dependencies. |
erlang:run | No | A TODO: release projects cannot be run |
erlang:setup | No | Utility goal that will setup a new Erlang/OTP Maven project, creating the basic resources and folders required, from a best practice point of view. This will typically replace the functionality given by a Maven archetype, checking and creating any missing resource. Regarding erlang/OTP applications this could be:
Regarding erlang/OTP releases this could be:
By default some extras for project management are also generated:
The default application resource file will look like (this would be sufficient for library applications): {application, ${ARTIFACT}, [{description, ${DESCRIPTION}}, {id, ${ID}}, {vsn, ${VERSION}}, {modules, ${MODULES}}, {maxT, infinity}, {registered, ${REGISTERED}}, {included_applications, []}, {applications, [kernel, stdlib]}, {env, []}, {start_phases, []}]}. The default application upgrade file will look like: {${VERSION}, [EDIT HERE], [EDIT HERE]}. The default release file will look like: {release, {${ARTIFACT}, ${VERSION}}, ${ERTS}, ${AUTODEPS}}. The default release upgrade file will look like: {${VERSION}, [EDIT HERE], [EDIT HERE]}. The default system configuration file will look like: []. |
erlang:show-build-info | No | This The output is logged at info level and contains:
InfoType ": " InfoValue where
InfoType is one of:
InfoValue is a file path. Both elements a seperated by
the string ": " (colon, space). |
erlang:target-system | No | This Note: The resulting target system is highly system dependent since it contains the erlang emulator (C code) from the backend nodes erlang installation. Note: This mojo is currently working but still in experimental stage.
|
erlang:test | No | A Mojo that runs test modules using
eunit . |
erlang:test-compile | No | Compile erlang test sources and recompile erlang sources with the
options debug_info , export_all and
{d, 'TEST'} . This will also compile the supporting
erlang sources provided along with the plugin. |
erlang:test-initialize | No | Mojo that starts the test erlang node used as a
backend for rpcs made by the plugin. The node will only be started
if it is not already running. The node will be shutdown when the
executing JVM exits. This is done by a
Runtime.addShutdownHook() which will only be added
once each JVM execution. |
erlang:test-release | No | This Mojo checks the release file for plausability.
This is done by checking the release version, the release name as
well as checking all dependencies for correct versioning and
existence. |
erlang:upload | No | This Note: Uploading of releases will require that the remote erlang
process has write access to its |
erlang:upload-tests | No | This |
The following specifies the minimum requirements to run this Maven plugin:
Maven | 2.0 |
JDK | 1.6 |
Memory | No minimum requirement. |
Disk Space | No minimum requirement. |
You should specify the version in your project's plugin configuration:
<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>eu.lindenbaum</groupId> <artifactId>maven-erlang-plugin</artifactId> <version>2.0.0</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>eu.lindenbaum</groupId> <artifactId>maven-erlang-plugin</artifactId> <version>2.0.0</version> </plugin> ... </plugins> </build> ... <!-- To use the report goals in your POM or parent POM --> <reporting> <plugins> <plugin> <groupId>eu.lindenbaum</groupId> <artifactId>maven-erlang-plugin</artifactId> <version>2.0.0</version> </plugin> ... </plugins> </reporting> ... </project>
For more information, see "Guide to Configuring Plug-ins"