|  | ~~ Licensed to the Apache Software Foundation (ASF) under one | 
|  | ~~ or more contributor license agreements.  See the NOTICE file | 
|  | ~~ distributed with this work for additional information | 
|  | ~~ regarding copyright ownership.  The ASF licenses this file | 
|  | ~~ to you under the Apache License, Version 2.0 (the | 
|  | ~~ "License"); you may not use this file except in compliance | 
|  | ~~ with the License.  You may obtain a copy of the License at | 
|  | ~~ | 
|  | ~~ http://www.apache.org/licenses/LICENSE-2.0 | 
|  | ~~ | 
|  | ~~ Unless required by applicable law or agreed to in writing, | 
|  | ~~ software distributed under the License is distributed on an | 
|  | ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | ~~ KIND, either express or implied.  See the License for the | 
|  | ~~ specific language governing permissions and limitations | 
|  | ~~ under the License. | 
|  |  | 
|  | ------ | 
|  | Unpacking specific artifacts | 
|  | ------ | 
|  | Allan Ramirez | 
|  | Brian Fox | 
|  | ------ | 
|  | 2006-11-01 | 
|  | ------ | 
|  |  | 
|  | Unpacking specific artifacts | 
|  |  | 
|  | This is pretty similar to the {{{./copying-artifacts.html}Copying Specific Artifacts}} | 
|  | example. The difference is that instead of copying the artifacts, they are unpacked. | 
|  | To unpack the copied artifacts, use the <<<dependency:unpack>>> mojo and | 
|  | configure the plugin into something like the sample below: | 
|  |  | 
|  | +---+ | 
|  | <project> | 
|  | [...] | 
|  | <build> | 
|  | <plugins> | 
|  | <plugin> | 
|  | <groupId>org.apache.maven.plugins</groupId> | 
|  | <artifactId>maven-dependency-plugin</artifactId> | 
|  | <version>${project.version}</version> | 
|  | <executions> | 
|  | <execution> | 
|  | <id>unpack</id> | 
|  | <phase>package</phase> | 
|  | <goals> | 
|  | <goal>unpack</goal> | 
|  | </goals> | 
|  | <configuration> | 
|  | <artifactItems> | 
|  | <artifactItem> | 
|  | <groupId>junit</groupId> | 
|  | <artifactId>junit</artifactId> | 
|  | <version>3.8.1</version> | 
|  | <type>jar</type> | 
|  | <overWrite>false</overWrite> | 
|  | <outputDirectory>\${project.build.directory}/alternateLocation</outputDirectory> | 
|  | <destFileName>optional-new-name.jar</destFileName> | 
|  | <includes>**/*.class,**/*.xml</includes> | 
|  | <excludes>**/*test.class</excludes> | 
|  | </artifactItem> | 
|  | </artifactItems> | 
|  | <includes>**/*.java</includes> | 
|  | <excludes>**/*.properties</excludes> | 
|  | <outputDirectory>\${project.build.directory}/wars</outputDirectory> | 
|  | <overWriteReleases>false</overWriteReleases> | 
|  | <overWriteSnapshots>true</overWriteSnapshots> | 
|  | </configuration> | 
|  | </execution> | 
|  | </executions> | 
|  | </plugin> | 
|  | </plugins> | 
|  | </build> | 
|  | [...] | 
|  | </project> | 
|  | +---+ | 
|  |  | 
|  | And after invoking <<<mvn package>>>, the artifacts are unpacked. Because checking the existence of an unpacked archive | 
|  | is difficult to do reliably, marker files are used instead. The location of the marker files is controlled by the {{{../unpack-dependencies-mojo.html#markersDirectory}markersDirectory}} parameter. | 
|  |  | 
|  | {Unpacking from the command line}: | 
|  |  | 
|  | If you intend to configure this mojo for execution on the command line using: | 
|  |  | 
|  | +---+ | 
|  | mvn dependency:unpack | 
|  | +---+ | 
|  |  | 
|  | you must not put the configuration inside the <executions> tag. Your configuration should look like this: | 
|  |  | 
|  | +---+ | 
|  | <project> | 
|  | [...] | 
|  | <build> | 
|  | <plugins> | 
|  | <plugin> | 
|  | <groupId>org.apache.maven.plugins</groupId> | 
|  | <artifactId>maven-dependency-plugin</artifactId> | 
|  | <version>${project.version}</version> | 
|  | <configuration> | 
|  | <artifactItems> | 
|  | <artifactItem> | 
|  | <groupId>[ groupId ]</groupId> | 
|  | <artifactId>[ artifactId ]</artifactId> | 
|  | <version>[ version ]</version> | 
|  | <type>[ packaging ]</type> | 
|  | <classifier> [classifier - optional] </classifier> | 
|  | <overWrite>[ true or false ]</overWrite> | 
|  | <outputDirectory>[ output directory ]</outputDirectory> | 
|  | <destFileName>[ filename ]</destFileName> | 
|  | <includes>[ comma separated list of file filters ]</includes> | 
|  | <excludes>[ comma separated list of file filters ]</excludes> | 
|  | </artifactItem> | 
|  | </artifactItems> | 
|  | <!-- other configurations here --> | 
|  | </configuration> | 
|  | </plugin> | 
|  | </plugins> | 
|  | </build> | 
|  | [...] | 
|  | </project> | 
|  | +---+ |