Usage Modules

Basic Configuration

The basic usage of the plugin is this:

<plugin>
  <groupId>de.smartics.maven.plugin</groupId>
  <artifactId>smartics-jboss-modules-maven-plugin</artifactId>
  <version>0.1.0</version>
  <executions>
    <execution>
      <id>create-modules-archive</id>
      <goals>
        <goal>create-modules-archive</goal>
      </goals>
      <phase>package</phase>
    </execution>
  </executions>
  <configuration>
    ...
  </configuration>
</plugin>

Use a Profile

You may want to push the plugin configuration inside a profile. This way you can control when to create the modules folder more easily.

<profiles>
  <profile>
    <id>attach</id>

    <properties>
    </properties>

    <build>
      <plugins>
        <plugin>
          <groupId>de.smartics.maven.plugin</groupId>
          <artifactId>smartics-jboss-modules-maven-plugin</artifactId>
          <version>0.1.0</version>
          <executions>
            <execution>
              <id>create-modules-archive</id>
              <goals>
                <goal>create-modules-archive</goal>
              </goals>
              <phase>package</phase>
            </execution>
          </executions>
          <configuration>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

An Example Configuration

<profiles>
  <profile>
    <id>attach</id>

    <properties>
      <attach.archive>true</attach.archive>
    </properties>

    <build>
      <plugins>
        <plugin>
          <groupId>de.smartics.maven.plugin</groupId>
          <artifactId>smartics-jboss-modules-maven-plugin</artifactId>
          <version>0.1.0</version>
          <executions>
            <execution>
              <id>create-modules-archive</id>
              <goals>
                <goal>create-modules-archive</goal>
              </goals>
              <phase>package</phase>
            </execution>
          </executions>
          <configuration>
            <slotStrategy>main</slotStrategy>
            <defaultSlot>my-product</defaultSlot>
            <attach>${attach.archive}</attach>

            <dependencyExcludes>
              <exclude>
                <groupId>com\.sun</groupId>
                <artifactId>tools</artifactId>
              </exclude>
              <exclude>
                <groupId>system</groupId>
              </exclude>
            </dependencyExcludes>

            <modules>
              <module>
                <name>de.smartics.smart-properties</name>
                <includes>
                  <include>
                    <groupId>de.smartics.properties</groupId>
                    <artifactId>smart-properties-core</artifactId>
                  </include>
                </includes>
              </module>

              <module>
                <name>de.smartics.properties</name>
                <includes>
                  <include>
                    <groupId>de.smartics.properties</groupId>
                  </include>
                </includes>
                <dependencies>
                  <dependency>
                    <name>javax.api</name>
                  </dependency>
                </dependencies>
                <export>
                  <excludes>
                    <exclude>org.infinispan</exclude>
                    <exclude>com.mysql</exclude>
                  </excludes>
                </export>
                <port>
                  <services>
                    <value>import</value>
                    <includes>
                      <include>.*</include>
                    </includes>
                  </services>
                </port>
              </module>
              <module>
                <name>de.smartics.exceptions</name>
                <includes>
                  <include>
                    <groupId>de.smartics.exceptions</groupId>
                  </include>
                </includes>
                <export>
                  <includes>
                    <include>.+</include>
                  </includes>
                </export>
              </module>

              <module>
                <name>org.apache.commons.$1</name>
                <includes>
                  <include>
                    <artifactId>commons-(.*)</artifactId>
                  </include>
                </includes>
              </module>
              <module>
                <name>com.mysql</name>
                <includes>
                  <include>
                    <artifactId>mysql-connector-java</artifactId>
                  </include>
                </includes>
                <dependencies>
                  <dependency>
                    <name>javax.api</name>
                  </dependency>
                </dependencies>
              </module>
              <module>
                <name>org.dom4j</name>
                <includes>
                  <include>
                    <artifactId>dom4j</artifactId>
                  </include>
                </includes>
                <skip>true</skip>
              </module>
              <module>
                <name>org.jaxen</name>
                <includes>
                  <include>
                    <artifactId>jaxen</artifactId>
                  </include>
                </includes>
              </module>

              <module>
                <name>javax.inject.api</name>
                <slot>main</slot>
                <includes>
                  <include>
                    <groupId>javax.inject</groupId>
                  </include>
                </includes>
                <skip>true</skip>
              </module>
              <module>
                <name>javax.servlet.api</name>
                <slot>main</slot>
                <includes>
                  <include>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                  </include>
                </includes>
                <skip>true</skip>
              </module>
              <module>
                <name>javax.servlet.jsp.api</name>
                <slot>main</slot>
                <includes>
                  <include>
                    <groupId>javax.servlet</groupId>
                    <artifactId>jsp-api</artifactId>
                  </include>
                </includes>
                <skip>true</skip>
              </module>
              <module>
                <name>javax.validation.api</name>
                <slot>main</slot>
                <includes>
                  <include>
                    <groupId>javax.validation</groupId>
                    <artifactId>validation-api</artifactId>
                  </include>
                </includes>
                <skip>true</skip>
              </module>
              <!--
              <module>
                <name>$g1.$1</name>
                <includes>
                  <include>
                    <groupId>(javax\..*)</groupId>
                    <artifactId>(.*)</artifactId>
                  </include>
                </includes>
                <skip>true</skip>
              </module> -->
              <module>
                <name>javax.portlet.api</name>
                <includes>
                  <include>
                    <groupId>portlet-api</groupId>
                  </include>
                </includes>
              </module>
              <module>
                <name>org.apache.xalan</name>
                <slot>main</slot>
                <includes>
                  <include>
                    <groupId>xalan</groupId>
                    <artifactId>xalan</artifactId>
                  </include>
                  <include>
                    <groupId>xalan</groupId>
                    <artifactId>serializer</artifactId>
                  </include>
                </includes>
                <dependencies>
                  <dependency>
                    <name>javax.api</name>
                  </dependency>
                </dependencies>
                <skip>true</skip>
              </module>
              <module>
                <name>org.apache.xerces</name>
                <slot>main</slot>
                <includes>
                  <include>
                    <groupId>xerces</groupId>
                  </include>
                </includes>
                <dependencies>
                  <dependency>
                    <name>javax.api</name>
                  </dependency>
                </dependencies>
                <skip>true</skip>
              </module>

              <module>
                <name>org.javassist</name>
                <includes>
                  <include>
                    <groupId>org.javassist</groupId>
                    <artifactId>javassist</artifactId>
                  </include>
                </includes>
              </module>
              <module>
                <name>org.javassist</name>
                <includes>
                  <include>
                    <groupId>javassist</groupId>
                    <artifactId>javassist</artifactId>
                  </include>
                </includes>
                <skip>true</skip>
              </module>
              <module>
                <name>org.javassist</name>
                <includes>
                  <include>
                    <groupId>jboss</groupId>
                    <artifactId>javassist</artifactId>
                  </include>
                </includes>
                <skip>true</skip>
              </module>

              <module>
                <name>org.apache.log4j</name>
                <includes>
                  <include>
                    <groupId>log4j</groupId>
                  </include>
                </includes>
              </module>

              <module>
                <name>org.infinispan</name>
                <slot>main</slot>
                <includes>
                  <include>
                    <groupId>org.infinispan</groupId>
                  </include>
                </includes>
                <skip>true</skip>
              </module>

              <module>
                <name>org.ognl</name>
                <includes>
                  <include>
                    <groupId>ognl</groupId>
                  </include>
                </includes>
                <dependencies>
                  <dependency>
                    <name>org.javassist</name>
                  </dependency>
                </dependencies>
                <export>
                  <includes>
                    <include>org.javassist</include>
                  </includes>
                </export>
              </module>
            </modules>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>