Normally a thick-client application would only need the stubs and utility classes of the EJB project. The EJB Plugin is capable of generating an EJB JAR for client use.
To generate the ejb-client JAR, you need to set generateClient to true in the plugin's configuration:
<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ejb-plugin</artifactId> <version>3.1.0</version> <configuration> <!-- this is false by default --> <generateClient>true</generateClient> </configuration> </plugin> </plugins> [...] </build> [...] </project>
The content of the ejb-client archive can also be customized using inclusions and exclusions.
To customize this, use the clientExcludes and clientIncludes elements:
<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ejb-plugin</artifactId> <version>3.1.0</version> <configuration> <clientIncludes> <!-- this will include all files and directories under com/foo/bar --> <clientInclude>com/foo/bar/**</clientInclude> <!-- this will include all files and directories under com/foo/acme --> <clientInclude>com/foo/acme/**</clientInclude> <!-- this will include all files under com/example --> <clientInclude>com/example/*</clientInclude> </clientIncludes> <clientExcludes> <!-- this will exclude all files under com/example --> <clientExclude>com/example/*</clientExclude> <!-- this will exclude all files and directories with the name sparrow under com/jack --> <clientExclude>com/jack/**/sparrow</clientExclude> </clientExcludes> </configuration> </plugin> </plugins> [...] </build> [...] </project>
Note: Be careful when mixing excludes and includes, excludes will have a higher priority than includes.