Search code examples
javamaven-2maven-assembly-plugin

maven-assembly-plugin for certain files


I have the multi module project this is the parent pom.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.atoms</groupId>
    <artifactId>atoms-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>
    <url/>
    <modules>
        <module>atoms-persistence</module>
        <module>atoms-reglas</module>
        <module>atoms-webservice</module>
    </modules>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>

                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>assemble.xml</descriptor>
                    </descriptors>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

In the project atoms-persitence I have the following files:

com.atoms.vo.*

com.atoms.service.*

com.atoms.dao.*

And in the atoms-reglas I have:

com.atoms.rules.*

how can I user the assembly plugin to make a jar that have only the classes in:

com.atoms.vo.* and com.atoms.rules.* ?


Solution

  • Try something along these lines:

    <assembly>
        <id>atoms</id>
        <formats>
            <format>jar</format>
        </formats>
        <includeBaseDirectory>false</includeBaseDirectory>
        <fileSets>
            <fileSet>
                <directory>${basedir}/target/classes
                </directory>
                <outputDirectory>/</outputDirectory>
                <includes>
                    <include>com/atoms/vo.**</include>
                    <include>com/atoms/rules/**</include>
                </includes>
            </fileSet>
        </fileSets>
    </assembly>