Customizing A Module Location
The example below shows how to place a library in the APP-INF/lib directory of the EAR file:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.2.0</version> <configuration> [...] <modules> <jarModule> <groupId>artifactGroupId</groupId> <artifactId>artifactId</artifactId> <bundleDir>APP-INF/lib</bundleDir> </jarModule> </modules> </configuration> </plugin> </plugins> </build>
Note that it is possible to specify a default bundle directory for all libraries. If a jarModule does not have the bundleDir property above, the default one is used. Below is an example of such configuration:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.2.0</version> <configuration> [...] <defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir> <modules> <jarModule> <groupId>artifactGroupId</groupId> <artifactId>artifactId</artifactId> <bundleDir>/</bundleDir> </jarModule> </modules> </configuration> </plugin> </plugins> </build>
In the above case, jarModules (i.e. libraries) will be placed in the APP-INF/lib directory except the specified artifact which will be placed at the root of the EAR structure.