Details
-
Type:
Improvement
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.0-alpha-4
-
Fix Version/s: 2.8
-
Component/s: copy-dependencies
-
Labels:None
-
Number of attachments :
Description
You can only configure the plugin with either one includeScope or one excludeScope. When executing the plugin to copy dependencies with the following configuration:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>validate</phase> <goals> <goal>copy-dependencies</goal> </goals> </execution> </executions> <configuration> <outputDirectory>/src/main/webapp/WEB-INF/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteIfNewer>true</overWriteIfNewer> <overWriteSnapshots>true</overWriteSnapshots> <excludeScope>provided</excludeScope> </configuration> </plugin>
It does exclude the provided scope, but it includes the test scope [easymock, dbunit, and junit appear in the output directory]. I tried to correct this problem by replacing the excludeScope parameter with two includeScope parameters, one for compile one for runtime, but only the first parameter was actually used.
I also tried to exclude test but got an error, something like, "Can't exclude tests as that would exclude everything!".
The goal is to be able to recreate the default copy functionality that is accomplished when executing a "mvn package" command, but be able to specify a maven-dependency-plugin configuration. When specifying this configuration, it overrides the default settings throughout the entire build life-cycle (as it should). But it is impossible to configure the plugin in the exact same was as the default settings.
This is needed to support copying dependencies into the WEB-INF/lib folder within Eclipse workspaces, to support embedded application-server deployment.
You shouldn't ever need to include or exclude two scopes at the same time because they are comprised of each other. The default is to include test scope, which includes everything. If you don't want any test dependencies or provided dependencies, then include runtime and exclude provided.
The scopes being interpreted are the scopes as maven sees them, not as specified in the pom. So the "test" scope includes everything, runtime includes compile but not provided etc.