Maven Include Dependencies in JAR Artifact: Difference between revisions
Jump to navigation
Jump to search
Line 33: | Line 33: | ||
</plugin> | </plugin> | ||
</pre> | </pre> | ||
Essential bits of configuration are the following: | |||
* the "unpack-dependencies" goal, which tells the plugin the extract classes from the transitive dependency tree. | |||
* outputDirectory "${project.build.directory}/classes" is the directory picked up by the jar plugin. | |||
* <includes>**/SimpleStateless.class</includes> the filter that selects the classes we want in the JAR artifact. |
Revision as of 21:50, 24 March 2017
Internal
Overview
There are situations when we want to extract some of the dependencies and bundle them with the JAR artifact, merged with the artifact classes. This is done using the jar plugin and the dependency plugin together, as described below.
Configure the Maven dependency plugin to unpack dependencies, or just some of them, in the directory that will be archived by the jar plugin:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>unpack-some-dependencies</id> <phase>prepare-package</phase> <goals> <goal>unpack-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/classes</outputDirectory> <includes>**/SimpleStateless.class</includes> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin>
Essential bits of configuration are the following:
- the "unpack-dependencies" goal, which tells the plugin the extract classes from the transitive dependency tree.
- outputDirectory "${project.build.directory}/classes" is the directory picked up by the jar plugin.
- <includes>**/SimpleStateless.class</includes> the filter that selects the classes we want in the JAR artifact.