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>
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>
<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>