Blueprint Developer Manual / Version 2104
Table Of Contents
The coremedia-application
packaging type is provided by the
coremedia-application-maven-plugin
. When you take a look at the root
pom.xml
and search for this plugin, you will find two occurrences, one in
the pluginManagement
section and one in the build
section. The
latter definition contains the line <extensions>true</extensions>
within its plugin body, telling Maven that it extends
Maven functionality. In this case, Maven
will register the custom lifecycle bound to the custom packaging type.
<plugin> <groupId>com.coremedia.maven</groupId> <artifactId>coremedia-application-maven-plugin</artifactId> <extensions>true</extensions> </plugin>
Besides lifecycle, a custom packaging type can also influence if
Maven dependencies of this type have transitive dependencies or
not. Because CoreMedia wanted to keep the coremedia-application
packaging type to
be the pendant of the war
packaging type, it does not have transitive
dependencies either. For your modules to depend on other coremedia-application
modules and their dependencies as well, this means, that you need to define an additional
dependency to the same GAV (groupId, artifactId, version) coordinates but with packaging type
pom
.
<dependency> <groupId>com.coremedia.cms</groupId> <artifactId>probedog-application</artifactId> <type>coremedia-application</type> <scope>runtime</scope> </dependency> <dependency> <groupId>com.coremedia.cms</groupId> <artifactId>probedog-application</artifactId> <type>pom</type> <scope>runtime</scope> </dependency>
Example 4.1. Dependencies for a CoreMedia application
You may know this pattern from working with war
overlays if they are skinny too, which
means that they contain no further versioned artifacts.
For further information about the coremedia-application-maven-plugin
, you should
visit the plugins documentation site at
CoreMedia
Application Plugin.