I'm seeing a jar with provided scope in my classpath during test execution. Given the definition of the provided scope, I would not expect that jar to appear on the classpath during any execution phase.

I've confirmed that the scope is correct using the M2E "Dependency Hierarchy" view. I've already tried using the classpathDependencyScopeExclude option in maven-surefire-plugin to keep the dependency from showing up, and it hasn't worked:

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.14.1</version>
        <configuration>
          <!--
            We always want to exclude provided deps. I'm not sure why this
            isn't the default.
          -->
          <classpathDependencyScopeExclude>provided</classpathDependencyScopeExclude>
        </configuration>
      </plugin>
    </plugins>
  </pluginManagement>
</build>

Here is the dependency definition in question:

Parent POM:

<dependency>
  <groupId>javax.ws.rs</groupId>
  <artifactId>jsr311-api</artifactId>
  <version>1.1.1</version>
</dependency>

Module POM:

<dependency>
  <groupId>javax.ws.rs</groupId>
  <artifactId>jsr311-api</artifactId>
  <scope>provided</scope>
</dependency>

Is it normal that the jar is there? What can I do to keep it from showing up?

EDIT: I've run mvn dependency:tree on the parent POM. Here's the output for the project in question:

[INFO] --------------------------------------------------
Edit
Report