= Meecrowave Maven
:jbake-date: 2016-10-24
:jbake-type: page
:jbake-status: published
:jbake-meecrowavepdf:
:jbake-meecrowavetitleicon: icon icon_puzzle_alt
:jbake-meecrowavecolor: body-blue
:icons: font

Coordinates:

[source,xml]
----
<plugin>
  <groupId>org.apache.meecrowave</groupId>
  <artifactId>meecrowave-maven-plugin</artifactId>
  <version>${meecrowave.version}</version>
</plugin>
----

TIP: most of the configuration is inherited from meecrowave-core.

Here are the available options (see core configuration for the details):

include::../../../../../target/generated-doc/MavenConfiguration.adoc[]

== Run

`mvn meecrowave:run` enables you to start a server configured in your `pom.xml`.
Once started, you have a few commands you can use to interact with the server:

- `quit`/`exit`: shutdown properly the server.
- `reload` (since 1.2.9): optionally relaunch a maven compilation - see configuration - and reload the web context.

== Bundling

[source]
----
mvn meecrowave:bundle
----

This maven goal will create a zip/tar.gz (configurable) ready to launch your application.

The layout if the following one:

[source]
----
.
├── bin
│   └── meecrowave.sh
├── conf
│   ├── log4j2.xml
│   └── meecrowave.properties
├── lib
│   └── *.jar
├── logs
│   └── meecrowave.log
└── temp
----

conf folder supports out of the box these files (but you can add your own if needed):

- log4j2.xml
- server.xml
- meecrowave.properties

You can access the root folder of the distribution reading the system property `meecrowave.base`.

`meecrowave.properties` supports all configuration options of the cli (just remove the `--`): http://openwebbeans.apache.org/meecrowave/meecrowave-core/cli.html.

Note: you can also split like Tomcat MEECROWAVE_BASE and MEECROWAVE_HOME if you want to extract meecrowave stack in a separate folder (from the application) to be able to update
it independently.

== Shading

Plain Maven shade plugin enables you to build fatjar with Maven.

Points to take care are:

1. merge CXF resources
2. merge Log4j2 resources
3. merge OpenWebBeans resources
4. merge SPI files (META-INF/services)
5. ensure signatures are still valid in the aggregated jar

[source,xml]
----
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>3.2.4</version>
  <executions>
    <execution>
      <id>bundle</id>
      <phase>package</phase>
      <goals>
        <goal>shade</goal>
      </goals>
      <configuration>
        <shadedClassifierName>fat</shadedClassifierName>
        <shadedArtifactAttached>true</shadedArtifactAttached>
        <dependencyReducedPomLocation>${project.build.directory}/reduced-pom-bundle.xml</dependencyReducedPomLocation>
        <transformers>
          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
            <mainClass>org.apache.meecrowave.runner.Cli</mainClass>
          </transformer>
          <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
            <resource>META-INF/cxf/bus-extensions.txt</resource>
          </transformer>
          <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
            <resource>log4j2.component.properties</resource>
          </transformer>
          <transformer implementation="com.github.edwgiz.maven_shade_plugin.log4j2_cache_transformer.PluginsCacheFileTransformer" />
          <transformer implementation="org.apache.maven.plugins.shade.resource.properties.OpenWebBeansPropertiesTransformer" />
          <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
        </transformers>
        <filters>
          <filter>
            <artifact>*:*</artifact>
            <excludes>
              <exclude>META-INF/*.SF</exclude>
              <exclude>META-INF/*.DSA</exclude>
              <exclude>META-INF/*.RSA</exclude>
              <exclude>META-INF/LICENSE.txt</exclude>
              <exclude>META-INF/LICENSE</exclude>
              <exclude>META-INF/NOTICE.txt</exclude>
              <exclude>META-INF/NOTICE</exclude>
            </excludes>
          </filter>
        </filters>
      </configuration>
    </execution>
  </executions>
  <dependencies>
    <dependency>
      <groupId>com.github.edwgiz</groupId>
      <artifactId>maven-shade-plugin.log4j2-cachefile-transformer</artifactId>
      <version>2.13.3</version>
    </dependency>
  </dependencies>
</plugin>
----

