Above is the directory structure of web application generated using maven. Use
maven-dependency-plugin
for copying artifacts to desired folder under WEB-INF
directoryThe application has only one dependent artifact item as shown in the
pom.xml
below<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.webapp</groupId> <artifactId>MyWeb</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>MyWeb Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>MyWeb</finalName> </build> </project>
Use
maven-dependency-plugin
to copy an artifact to a specific directory. Add the lines below to your pom.xml under build
tag to include the dependency plugin and run it as part of the mvn package
command. Make sure you have also defined the copy
goal.<build> <finalName>MyWeb</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>id</id> <phase>package</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>junit</groupId> <artifactId>junit</artifactId> <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/services</outputDirectory> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> </plugins> </build>
Note: The
plugins
tag should NOT be within pluginManagement
The pluginManagement
tag is a way to share the same plugin configuration across all your project modules whereas plugins
tag is an actual invocation of the plugin.
No comments :
Post a Comment