Adding libraries to the EAR library directory
About this task
Important: Applicable to Liberty, WebSphere® Application Server traditional
Procedure
- Open the pom.xml file in the POM editor by double-clicking the file. Click the pom.xml tab to work directly with the source.
-
Set the lib directory to be used in
the EAR project.
Add the element
<defaultLibBundleDir>
to the configuration of the maven-ear-plugin as in this example:<plugins> <plugin> <artifactId>maven-ear-plugin</artifactId> <version>2.7</version> <configuration> <version>6</version> <defaultLibBundleDir>lib</defaultLibBundleDir> </configuration> </plugin> </plugins>
- Save the pom.xml file.
-
Use quick fixes to resolve any errors.
After you save the pom.xml file, you might see the following errors in the Problems or Markers view:
- Library Directory "<PATH_TO_LIB_FOLDER>" does not exist.
- Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix.
-
Place JAR files in the lib directory.
If the lib directory is specified for the EAR project in the
<defaultLibBundleDir>
element, then all dependencies to JAR artifacts are bundled in the lib directory by default. However, if you want to place a JAR file in a different location, you can use the<jarModule>
element to specify a different location.For example, the following fragment of pom.xml shows that the EAR project uses lib as the default directory to bundle JAR files:<plugin> <artifactId>maven-ear-plugin</artifactId> <version>2.7</version> <configuration> <version>6</version> <defaultLibBundleDir>lib</defaultLibBundleDir>
In the following example, the pom.xml file has a dependency to a shared library that is packaged in lib and a dependency to an EJB client JAR file that is bundled at the root of the EAR file. Without further changes, both are bundled in the lib directory by default.<dependencies> <dependency> <groupId>testapp</groupId> <artifactId>ejbclient</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>testapp</groupId> <artifactId>SharedLib</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
The following example shows how to change the location of the EJB client JAR file:
This example shows that the default bundle directory for JAR files is lib, but the EJB client JAR file for<plugin> <artifactId>maven-ear-plugin</artifactId> <version>2.7</version> <configuration> <version>6</version> <defaultLibBundleDir>lib</defaultLibBundleDir> <modules> <jarModule> <groupId>testapp</groupId> <artifactId>ejbclient</artifactId> <bundleDir>/</bundleDir> </jarModule> </modules> </configuration> </plugin>
<artifactId>ejbclient</artifactId>
is in the root of the project. The bundle directory is indicated with<bundleDir>/</bundleDir>
.