You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/02/17 07:04:35 UTC

[maven-dependency-analyzer] branch master updated: [MSHARED-1035] Get rid of maven-plugin-testing-tools for IT test

This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git


The following commit(s) were added to refs/heads/master by this push:
     new 749ebcd  [MSHARED-1035] Get rid of maven-plugin-testing-tools for IT test
749ebcd is described below

commit 749ebcdd58fc22d30cf761b16ab671cb9520a0cb
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Wed Feb 16 20:26:05 2022 +0100

    [MSHARED-1035] Get rid of maven-plugin-testing-tools for IT test
    
    IT tests will be executed by maven-invoker-plugin
---
 .github/workflows/maven-verify.yml                 |   3 -
 pom.xml                                            |  89 ++--
 .../inlinedStaticReference/pom.xml                 |  18 +
 .../main/java/inlinedStaticReference/Project.java  |   0
 .../inlinedStaticReference/verify.groovy}          |  23 +-
 .../jarWithClassInUnnamedPackage/pom.xml           |   0
 .../jarWithClassInUnnamedPackage/project1/pom.xml  |   0
 .../project1/src/main/java/coffee.java             |   0
 .../jarWithClassInUnnamedPackage/project2}/pom.xml |  29 +-
 .../project2/src/main/java/project2/Project.java   |   0
 .../jarWithClassInUnnamedPackage/verify.groovy}    |  25 +-
 .../jarWithCompileDependency/pom.xml               |   0
 .../jarWithCompileDependency/project1/pom.xml      |   0
 .../project1/Project1.java                         |   0
 .../jarWithCompileDependency/project2}/pom.xml     |  34 +-
 .../project2/Project2.java                         |   0
 .../project2/Project2Test.java                     |   0
 .../jarWithCompileDependency/verify.groovy}        |  26 +-
 .../jarWithCompileScopedTestDependency/pom.xml     |   0
 .../project1/pom.xml                               |   0
 .../jarWithTestDependency/project1/Project1.java   |   0
 .../project2/pom.xml                               |  36 +-
 .../jarWithTestDependency/project2/Project2.java   |   0
 .../verify.groovy}                                 |  27 +-
 .../jarWithNoDependencies}/pom.xml                 |  29 +-
 .../main/java/jarWithNoDependencies/Project.java   |   0
 .../jarWithNoDependencies/verify.groovy}           |  22 +-
 .../jarWithRuntimeScopedTestDependency/pom.xml     |   0
 .../project1/pom.xml                               |   0
 .../jarWithTestDependency/project1/Project1.java   |   0
 .../project2/pom.xml                               |  36 +-
 .../jarWithTestDependency/project2/Project2.java   |   0
 .../verify.groovy}                                 |  26 +-
 .../resources => it}/jarWithTestDependency/pom.xml |   0
 .../jarWithTestDependency/project1/pom.xml         |   0
 .../jarWithTestDependency/project1/Project1.java   |   0
 .../jarWithTestDependency}/project2/pom.xml        |  41 +-
 .../jarWithTestDependency/project2/Project2.java   |   0
 .../jarWithTestDependency/verify.groovy}           |  26 +-
 .../jarWithXmlTransitiveDependency/pom.xml         |  24 +-
 .../jarWithXmlTransitiveDependency/Project.java    |   0
 .../jarWithXmlTransitiveDependency/verify.groovy}  |  27 +-
 .../java8methodRefs}/pom.xml                       |  31 +-
 .../main/java/inlinedStaticReference/Project.java  |   0
 .../Main.java => it/java8methodRefs/verify.groovy} |  24 +-
 .../multimoduleProject/module1/pom.xml             |   0
 .../module1/src/main/java/foo/Main.java            |   0
 .../multimoduleProject/module2/pom.xml             |  18 +
 .../module2/src/main/java/bar/Main.java            |   0
 .../resources => it}/multimoduleProject/pom.xml    |   4 -
 .../multimoduleProject/verify.groovy}              |  23 +-
 .../project2 => it/pom}/pom.xml                    |  33 +-
 .../java/bar/Main.java => it/pom/verify.groovy}    |  22 +-
 src/it/settings.xml                                |  54 +++
 .../it/setup-mock-plugin/invoker.properties        |  15 +-
 src/it/setup-mock-plugin/pom.xml                   |  74 +++
 .../src/main/java/it/test/MockAnalyzeMojo.java     | 104 +++++
 .../typeUseAnnotationDependency/annotation/pom.xml |   0
 .../annotation/Annotation.java                     |   0
 .../typeUseAnnotationDependency/pom.xml            |   0
 .../typeUseAnnotationDependency/usage}/pom.xml     |  29 +-
 .../typeUseAnnotationDependency/usage/Usage.java   |   0
 .../usageLocalVar}/pom.xml                         |  29 +-
 .../usageLocalVar/UsageLocalVar.java               |   0
 .../typeUseAnnotationDependency/verify.groovy}     |  42 +-
 .../unnamedPackageClassReference/pom.xml           |  18 +
 .../java/unnamedPackageClassReference/Project.java |   0
 .../unnamedPackageClassReference/verify.groovy}    |  23 +-
 .../usedUndeclaredReference/pom.xml                |  24 +-
 .../main/java/usedUndeclaredReference/Project.java |   0
 .../usedUndeclaredReference/verify.groovy}         |  27 +-
 .../DefaultProjectDependencyAnalyzerTest.java      | 499 ---------------------
 .../analyzer/ProjectDependencyAnalysisTest.java    |  45 +-
 .../jarWithCompileDependency/project2/pom.xml      |  46 --
 src/test/resources/jarWithNoDependencies/pom.xml   |  33 --
 .../jarWithTestDependency/project2/pom.xml         |  62 ---
 src/test/resources/java8methodRefs/pom.xml         |  59 ---
 src/test/resources/pom/pom.xml                     |  33 --
 .../typeUseAnnotationDependency/usage/pom.xml      |  40 --
 .../usageLocalVar/pom.xml                          |  40 --
 80 files changed, 852 insertions(+), 1140 deletions(-)

diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml
index 1b3110d..b10fdca 100644
--- a/.github/workflows/maven-verify.yml
+++ b/.github/workflows/maven-verify.yml
@@ -24,6 +24,3 @@ jobs:
   build:
     name: Verify
     uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v2
-    with:
-      # remove after MSHARED-916
-      maven_version: '3.6.3'
diff --git a/pom.xml b/pom.xml
index 5a09270..936827c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,16 +65,6 @@
     <project.build.outputTimestamp>2022-01-24T19:57:26Z</project.build.outputTimestamp>
   </properties>
 
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.maven.shared</groupId>
-        <artifactId>maven-invoker</artifactId>
-        <version>3.1.0</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
   <dependencies>
     <dependency>
       <groupId>org.ow2.asm</groupId>
@@ -112,12 +102,8 @@
       <artifactId>maven-artifact</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
-    <dependency>
-      <groupId>org.apache.maven.plugin-testing</groupId>
-      <artifactId>maven-plugin-testing-tools</artifactId>
-      <version>1.3</version>
-      <scope>test</scope>
-    </dependency>
+
+    <!-- testing support -->
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -145,38 +131,9 @@
         </plugin>
       </plugins>
     </pluginManagement>
+
     <plugins>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-enforcer-plugin</artifactId>
-        <executions>
-          <execution>
-            <!-- remove after MSHARED-916 -->
-            <id>enforce-max-maven-version</id>
-            <goals>
-              <goal>enforce</goal>
-            </goals>
-            <configuration>
-              <rules>
-                <requireMavenVersion>
-                  <version>(,3.6.3]</version>
-                </requireMavenVersion>
-              </rules>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <maven.home>${maven.home}</maven.home>
-            <local.repo>${project.build.directory}/local-repo</local.repo>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-      <plugin>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-component-metadata</artifactId>
         <executions>
@@ -192,24 +149,34 @@
 
   <profiles>
     <profile>
-      <id>maven-repo-local</id>
-      <activation>
-        <property>
-          <name>maven.repo.local</name>
-        </property>
-      </activation>
+      <id>run-its</id>
       <build>
         <plugins>
-         <plugin>
-            <artifactId>maven-surefire-plugin</artifactId>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>install</goal>
+                  <goal>integration-test</goal>
+                  <goal>verify</goal>
+                </goals>
+              </execution>
+            </executions>
             <configuration>
-              <systemProperties combine.children="append">
-                <property>
-                  <!-- Pass this through to the tests (if set!) to have them pick the right repository -->
-                  <name>maven.repo.local</name>
-                  <value>${maven.repo.local}</value>
-                </property>
-              </systemProperties>
+              <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+              <localRepositoryPath>target/local-repo</localRepositoryPath>
+              <settingsFile>src/it/settings.xml</settingsFile>
+              <postBuildHookScript>verify</postBuildHookScript>
+              <goals>
+                <goal>verify</goal>
+              </goals>
+              <properties>
+                <maven.compiler.source>${java.specification.version}</maven.compiler.source>
+                <maven.compiler.target>${java.specification.version}</maven.compiler.target>
+                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+              </properties>
             </configuration>
           </plugin>
         </plugins>
diff --git a/src/test/resources/inlinedStaticReference/pom.xml b/src/it/inlinedStaticReference/pom.xml
similarity index 78%
rename from src/test/resources/inlinedStaticReference/pom.xml
rename to src/it/inlinedStaticReference/pom.xml
index 7c14d9d..9bfdaaa 100644
--- a/src/test/resources/inlinedStaticReference/pom.xml
+++ b/src/it/inlinedStaticReference/pom.xml
@@ -38,4 +38,22 @@
       <version>1.6.1</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/inlinedStaticReference/src/main/java/inlinedStaticReference/Project.java b/src/it/inlinedStaticReference/src/main/java/inlinedStaticReference/Project.java
similarity index 100%
rename from src/test/resources/inlinedStaticReference/src/main/java/inlinedStaticReference/Project.java
rename to src/it/inlinedStaticReference/src/main/java/inlinedStaticReference/Project.java
diff --git a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java b/src/it/inlinedStaticReference/verify.groovy
similarity index 74%
copy from src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
copy to src/it/inlinedStaticReference/verify.groovy
index be9a400..088383c 100644
--- a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
+++ b/src/it/inlinedStaticReference/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,9 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package bar;
 
-public class Main
-{
-    public foo.Main dummy = null;
-}
+def analysis = new File( basedir, 'target/analysis.txt' ).text
+
+def expected = '''
+UsedDeclaredArtifacts:
+ dom4j:dom4j:jar:1.6.1:compile
+
+UsedUndeclaredArtifactsWithClasses:
+
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/jarWithClassInUnnamedPackage/pom.xml b/src/it/jarWithClassInUnnamedPackage/pom.xml
similarity index 100%
rename from src/test/resources/jarWithClassInUnnamedPackage/pom.xml
rename to src/it/jarWithClassInUnnamedPackage/pom.xml
diff --git a/src/test/resources/jarWithClassInUnnamedPackage/project1/pom.xml b/src/it/jarWithClassInUnnamedPackage/project1/pom.xml
similarity index 100%
rename from src/test/resources/jarWithClassInUnnamedPackage/project1/pom.xml
rename to src/it/jarWithClassInUnnamedPackage/project1/pom.xml
diff --git a/src/test/resources/jarWithClassInUnnamedPackage/project1/src/main/java/coffee.java b/src/it/jarWithClassInUnnamedPackage/project1/src/main/java/coffee.java
similarity index 100%
rename from src/test/resources/jarWithClassInUnnamedPackage/project1/src/main/java/coffee.java
rename to src/it/jarWithClassInUnnamedPackage/project1/src/main/java/coffee.java
diff --git a/src/test/resources/unnamedPackageClassReference/pom.xml b/src/it/jarWithClassInUnnamedPackage/project2/pom.xml
similarity index 67%
copy from src/test/resources/unnamedPackageClassReference/pom.xml
copy to src/it/jarWithClassInUnnamedPackage/project2/pom.xml
index bd79056..583424c 100644
--- a/src/test/resources/unnamedPackageClassReference/pom.xml
+++ b/src/it/jarWithClassInUnnamedPackage/project2/pom.xml
@@ -25,17 +25,34 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
-
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-  <artifactId>unnamedPackageClassReference</artifactId>
-  <version>1.0</version>
+  <artifactId>jarWithClassInUnnamedPackage2</artifactId>
   <packaging>jar</packaging>
+  <version>1.0</version>
 
   <dependencies>
     <dependency>
-      <groupId>dnsjava</groupId>
-      <artifactId>dnsjava</artifactId>
-      <version>2.1.8</version>
+      <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+      <artifactId>jarWithClassInUnnamedPackage1</artifactId>
+      <version>1.0</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/jarWithClassInUnnamedPackage/project2/src/main/java/project2/Project.java b/src/it/jarWithClassInUnnamedPackage/project2/src/main/java/project2/Project.java
similarity index 100%
rename from src/test/resources/jarWithClassInUnnamedPackage/project2/src/main/java/project2/Project.java
rename to src/it/jarWithClassInUnnamedPackage/project2/src/main/java/project2/Project.java
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/jarWithClassInUnnamedPackage/verify.groovy
similarity index 70%
copy from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
copy to src/it/jarWithClassInUnnamedPackage/verify.groovy
index 7ca91f7..50d914a 100644
--- a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
+++ b/src/it/jarWithClassInUnnamedPackage/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,17 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package foo;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.model.Model;
+def analysis = new File( basedir, 'project2/target/analysis.txt' ).text
 
-public class Main
-{
-    public static final String SCOPE_COMPILE = Artifact.SCOPE_COMPILE;
+def expected = '''
+UsedDeclaredArtifacts:
 
-    public Model model = null;
+UsedUndeclaredArtifactsWithClasses:
 
-    public Metadata metadata = null;
-}
+UnusedDeclaredArtifacts:
+ org.apache.maven.shared.dependency-analyzer.tests:jarWithClassInUnnamedPackage1:jar:1.0:compile
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/jarWithCompileDependency/pom.xml b/src/it/jarWithCompileDependency/pom.xml
similarity index 100%
rename from src/test/resources/jarWithCompileDependency/pom.xml
rename to src/it/jarWithCompileDependency/pom.xml
diff --git a/src/test/resources/jarWithCompileDependency/project1/pom.xml b/src/it/jarWithCompileDependency/project1/pom.xml
similarity index 100%
rename from src/test/resources/jarWithCompileDependency/project1/pom.xml
rename to src/it/jarWithCompileDependency/project1/pom.xml
diff --git a/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java b/src/it/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
similarity index 100%
rename from src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
rename to src/it/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
diff --git a/src/test/resources/unnamedPackageClassReference/pom.xml b/src/it/jarWithCompileDependency/project2/pom.xml
similarity index 63%
copy from src/test/resources/unnamedPackageClassReference/pom.xml
copy to src/it/jarWithCompileDependency/project2/pom.xml
index bd79056..08dcea7 100644
--- a/src/test/resources/unnamedPackageClassReference/pom.xml
+++ b/src/it/jarWithCompileDependency/project2/pom.xml
@@ -25,17 +25,39 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
-
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-  <artifactId>unnamedPackageClassReference</artifactId>
-  <version>1.0</version>
+  <artifactId>jarWithCompileDependency2</artifactId>
   <packaging>jar</packaging>
+  <version>1.0</version>
 
   <dependencies>
     <dependency>
-      <groupId>dnsjava</groupId>
-      <artifactId>dnsjava</artifactId>
-      <version>2.1.8</version>
+      <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+      <artifactId>jarWithCompileDependency1</artifactId>
+      <version>1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+      <version>30.1.1-android</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java b/src/it/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
similarity index 100%
rename from src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
rename to src/it/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
diff --git a/src/test/resources/jarWithCompileDependency/project2/src/test/java/jarWithCompileDependency/project2/Project2Test.java b/src/it/jarWithCompileDependency/project2/src/test/java/jarWithCompileDependency/project2/Project2Test.java
similarity index 100%
rename from src/test/resources/jarWithCompileDependency/project2/src/test/java/jarWithCompileDependency/project2/Project2Test.java
rename to src/it/jarWithCompileDependency/project2/src/test/java/jarWithCompileDependency/project2/Project2Test.java
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/jarWithCompileDependency/verify.groovy
similarity index 67%
copy from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
copy to src/it/jarWithCompileDependency/verify.groovy
index 7ca91f7..d31d9cd 100644
--- a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
+++ b/src/it/jarWithCompileDependency/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,17 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package foo;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.model.Model;
+def analysis = new File( basedir, 'project2/target/analysis.txt' ).text
 
-public class Main
-{
-    public static final String SCOPE_COMPILE = Artifact.SCOPE_COMPILE;
+def expected = '''
+UsedDeclaredArtifacts:
+ org.apache.maven.shared.dependency-analyzer.tests:jarWithCompileDependency1:jar:1.0:compile
+ com.google.guava:guava:jar:30.1.1-android:compile
 
-    public Model model = null;
+UsedUndeclaredArtifactsWithClasses:
 
-    public Metadata metadata = null;
-}
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/pom.xml b/src/it/jarWithCompileScopedTestDependency/pom.xml
similarity index 100%
rename from src/test/resources/jarWithCompileScopedTestDependency/pom.xml
rename to src/it/jarWithCompileScopedTestDependency/pom.xml
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project1/pom.xml b/src/it/jarWithCompileScopedTestDependency/project1/pom.xml
similarity index 100%
rename from src/test/resources/jarWithCompileScopedTestDependency/project1/pom.xml
rename to src/it/jarWithCompileScopedTestDependency/project1/pom.xml
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/it/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
similarity index 100%
rename from src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
rename to src/it/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project2/pom.xml b/src/it/jarWithCompileScopedTestDependency/project2/pom.xml
similarity index 72%
copy from src/test/resources/jarWithCompileScopedTestDependency/project2/pom.xml
copy to src/it/jarWithCompileScopedTestDependency/project2/pom.xml
index d2dd865..fe8d2f9 100644
--- a/src/test/resources/jarWithCompileScopedTestDependency/project2/pom.xml
+++ b/src/it/jarWithCompileScopedTestDependency/project2/pom.xml
@@ -20,9 +20,9 @@
   -->
 
 <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/xsd/maven-4.0.0.xsd"
+    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/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
@@ -30,18 +30,6 @@
   <packaging>jar</packaging>
   <version>1.0</version>
 
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.3.1</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
@@ -55,7 +43,23 @@
       <artifactId>junit</artifactId>
       <version>3.8.1</version>
     </dependency>
-
   </dependencies>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/it/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
similarity index 100%
rename from src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
rename to src/it/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/jarWithCompileScopedTestDependency/verify.groovy
similarity index 66%
copy from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
copy to src/it/jarWithCompileScopedTestDependency/verify.groovy
index 7ca91f7..86e0069 100644
--- a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
+++ b/src/it/jarWithCompileScopedTestDependency/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,17 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package foo;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.model.Model;
+def analysis = new File( basedir, 'project2/target/analysis.txt' ).text
 
-public class Main
-{
-    public static final String SCOPE_COMPILE = Artifact.SCOPE_COMPILE;
+def expected = '''
+UsedDeclaredArtifacts:
+ org.apache.maven.shared.dependency-analyzer.tests:jarWithCompileScopedTestDependency1:jar:1.0:test
+ junit:junit:jar:3.8.1:compile
 
-    public Model model = null;
+UsedUndeclaredArtifactsWithClasses:
 
-    public Metadata metadata = null;
-}
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+ junit:junit:jar:3.8.1:compile
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/unnamedPackageClassReference/pom.xml b/src/it/jarWithNoDependencies/pom.xml
similarity index 73%
copy from src/test/resources/unnamedPackageClassReference/pom.xml
copy to src/it/jarWithNoDependencies/pom.xml
index bd79056..6dfb983 100644
--- a/src/test/resources/unnamedPackageClassReference/pom.xml
+++ b/src/it/jarWithNoDependencies/pom.xml
@@ -25,17 +25,26 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
-
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-  <artifactId>unnamedPackageClassReference</artifactId>
-  <version>1.0</version>
+  <artifactId>jarWithNoDependencies</artifactId>
   <packaging>jar</packaging>
+  <version>1.0</version>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
-  <dependencies>
-    <dependency>
-      <groupId>dnsjava</groupId>
-      <artifactId>dnsjava</artifactId>
-      <version>2.1.8</version>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java b/src/it/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
similarity index 100%
rename from src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
rename to src/it/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
diff --git a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java b/src/it/jarWithNoDependencies/verify.groovy
similarity index 76%
copy from src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
copy to src/it/jarWithNoDependencies/verify.groovy
index be9a400..e545857 100644
--- a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
+++ b/src/it/jarWithNoDependencies/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,9 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package bar;
 
-public class Main
-{
-    public foo.Main dummy = null;
-}
+def analysis = new File( basedir, 'target/analysis.txt' ).text
+
+def expected = '''
+UsedDeclaredArtifacts:
+
+UsedUndeclaredArtifactsWithClasses:
+
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/pom.xml b/src/it/jarWithRuntimeScopedTestDependency/pom.xml
similarity index 100%
rename from src/test/resources/jarWithRuntimeScopedTestDependency/pom.xml
rename to src/it/jarWithRuntimeScopedTestDependency/pom.xml
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/project1/pom.xml b/src/it/jarWithRuntimeScopedTestDependency/project1/pom.xml
similarity index 100%
rename from src/test/resources/jarWithRuntimeScopedTestDependency/project1/pom.xml
rename to src/it/jarWithRuntimeScopedTestDependency/project1/pom.xml
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/it/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
similarity index 100%
rename from src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
rename to src/it/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/project2/pom.xml b/src/it/jarWithRuntimeScopedTestDependency/project2/pom.xml
similarity index 72%
rename from src/test/resources/jarWithRuntimeScopedTestDependency/project2/pom.xml
rename to src/it/jarWithRuntimeScopedTestDependency/project2/pom.xml
index bfe9fc2..04ca8aa 100644
--- a/src/test/resources/jarWithRuntimeScopedTestDependency/project2/pom.xml
+++ b/src/it/jarWithRuntimeScopedTestDependency/project2/pom.xml
@@ -20,9 +20,9 @@
   -->
 
 <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/xsd/maven-4.0.0.xsd"
+    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/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
@@ -30,18 +30,6 @@
   <packaging>jar</packaging>
   <version>1.0</version>
 
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.3.1</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
@@ -56,7 +44,23 @@
       <version>3.8.1</version>
       <scope>runtime</scope>
     </dependency>
-
   </dependencies>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/it/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
similarity index 100%
rename from src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
rename to src/it/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/jarWithRuntimeScopedTestDependency/verify.groovy
similarity index 68%
copy from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
copy to src/it/jarWithRuntimeScopedTestDependency/verify.groovy
index 7ca91f7..1144c86 100644
--- a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
+++ b/src/it/jarWithRuntimeScopedTestDependency/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,17 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package foo;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.model.Model;
+def analysis = new File( basedir, 'project2/target/analysis.txt' ).text
 
-public class Main
-{
-    public static final String SCOPE_COMPILE = Artifact.SCOPE_COMPILE;
+def expected = '''
+UsedDeclaredArtifacts:
+ org.apache.maven.shared.dependency-analyzer.tests:jarWithRuntimeScopedTestDependency1:jar:1.0:test
+ junit:junit:jar:3.8.1:runtime
 
-    public Model model = null;
+UsedUndeclaredArtifactsWithClasses:
 
-    public Metadata metadata = null;
-}
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/jarWithTestDependency/pom.xml b/src/it/jarWithTestDependency/pom.xml
similarity index 100%
rename from src/test/resources/jarWithTestDependency/pom.xml
rename to src/it/jarWithTestDependency/pom.xml
diff --git a/src/test/resources/jarWithTestDependency/project1/pom.xml b/src/it/jarWithTestDependency/project1/pom.xml
similarity index 100%
rename from src/test/resources/jarWithTestDependency/project1/pom.xml
rename to src/it/jarWithTestDependency/project1/pom.xml
diff --git a/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/it/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
similarity index 100%
rename from src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
rename to src/it/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project2/pom.xml b/src/it/jarWithTestDependency/project2/pom.xml
similarity index 66%
rename from src/test/resources/jarWithCompileScopedTestDependency/project2/pom.xml
rename to src/it/jarWithTestDependency/project2/pom.xml
index d2dd865..82b7d2a 100644
--- a/src/test/resources/jarWithCompileScopedTestDependency/project2/pom.xml
+++ b/src/it/jarWithTestDependency/project2/pom.xml
@@ -20,32 +20,20 @@
   -->
 
 <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/xsd/maven-4.0.0.xsd"
+    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/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-  <artifactId>jarWithCompileScopedTestDependency2</artifactId>
+  <artifactId>jarWithTestDependency2</artifactId>
   <packaging>jar</packaging>
   <version>1.0</version>
 
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.3.1</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-      <artifactId>jarWithCompileScopedTestDependency1</artifactId>
+      <artifactId>jarWithTestDependency1</artifactId>
       <version>1.0</version>
       <scope>test</scope>
     </dependency>
@@ -54,8 +42,25 @@
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.1</version>
+      <scope>test</scope>
     </dependency>
-
   </dependencies>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/it/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
similarity index 100%
rename from src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
rename to src/it/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/jarWithTestDependency/verify.groovy
similarity index 69%
copy from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
copy to src/it/jarWithTestDependency/verify.groovy
index 7ca91f7..18b3be2 100644
--- a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
+++ b/src/it/jarWithTestDependency/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,17 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package foo;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.model.Model;
+def analysis = new File( basedir, 'project2/target/analysis.txt' ).text
 
-public class Main
-{
-    public static final String SCOPE_COMPILE = Artifact.SCOPE_COMPILE;
+def expected = '''
+UsedDeclaredArtifacts:
+ org.apache.maven.shared.dependency-analyzer.tests:jarWithTestDependency1:jar:1.0:test
+ junit:junit:jar:3.8.1:test
 
-    public Model model = null;
+UsedUndeclaredArtifactsWithClasses:
 
-    public Metadata metadata = null;
-}
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/jarWithXmlTransitiveDependency/pom.xml b/src/it/jarWithXmlTransitiveDependency/pom.xml
similarity index 67%
rename from src/test/resources/jarWithXmlTransitiveDependency/pom.xml
rename to src/it/jarWithXmlTransitiveDependency/pom.xml
index 6d1c83a..bfae913 100644
--- a/src/test/resources/jarWithXmlTransitiveDependency/pom.xml
+++ b/src/it/jarWithXmlTransitiveDependency/pom.xml
@@ -20,9 +20,9 @@
   -->
 
 <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/xsd/maven-4.0.0.xsd"
+    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/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
 
@@ -38,4 +38,22 @@
       <version>1.6.1</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/jarWithXmlTransitiveDependency/src/main/java/jarWithXmlTransitiveDependency/Project.java b/src/it/jarWithXmlTransitiveDependency/src/main/java/jarWithXmlTransitiveDependency/Project.java
similarity index 100%
rename from src/test/resources/jarWithXmlTransitiveDependency/src/main/java/jarWithXmlTransitiveDependency/Project.java
rename to src/it/jarWithXmlTransitiveDependency/src/main/java/jarWithXmlTransitiveDependency/Project.java
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/jarWithXmlTransitiveDependency/verify.groovy
similarity index 71%
copy from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
copy to src/it/jarWithXmlTransitiveDependency/verify.groovy
index 7ca91f7..4d7483a 100644
--- a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
+++ b/src/it/jarWithXmlTransitiveDependency/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,17 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package foo;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.model.Model;
+def analysis = new File( basedir, 'target/analysis.txt' ).text
 
-public class Main
-{
-    public static final String SCOPE_COMPILE = Artifact.SCOPE_COMPILE;
+def expected = '''
+UsedDeclaredArtifacts:
+ dom4j:dom4j:jar:1.6.1:compile
 
-    public Model model = null;
+UsedUndeclaredArtifactsWithClasses:
+ xml-apis:xml-apis:jar:1.0.b2:compile
+  org.xml.sax.Parser
 
-    public Metadata metadata = null;
-}
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/unnamedPackageClassReference/pom.xml b/src/it/java8methodRefs/pom.xml
similarity index 65%
copy from src/test/resources/unnamedPackageClassReference/pom.xml
copy to src/it/java8methodRefs/pom.xml
index bd79056..b8df6a7 100644
--- a/src/test/resources/unnamedPackageClassReference/pom.xml
+++ b/src/it/java8methodRefs/pom.xml
@@ -27,15 +27,38 @@
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-  <artifactId>unnamedPackageClassReference</artifactId>
+  <artifactId>java8methodreferences</artifactId>
   <version>1.0</version>
   <packaging>jar</packaging>
 
   <dependencies>
     <dependency>
-      <groupId>dnsjava</groupId>
-      <artifactId>dnsjava</artifactId>
-      <version>2.1.8</version>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.4</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.6</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/java8methodRefs/src/main/java/inlinedStaticReference/Project.java b/src/it/java8methodRefs/src/main/java/inlinedStaticReference/Project.java
similarity index 100%
rename from src/test/resources/java8methodRefs/src/main/java/inlinedStaticReference/Project.java
rename to src/it/java8methodRefs/src/main/java/inlinedStaticReference/Project.java
diff --git a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java b/src/it/java8methodRefs/verify.groovy
similarity index 71%
copy from src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
copy to src/it/java8methodRefs/verify.groovy
index be9a400..8fcd177 100644
--- a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
+++ b/src/it/java8methodRefs/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,9 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package bar;
 
-public class Main
-{
-    public foo.Main dummy = null;
-}
+def analysis = new File( basedir, 'target/analysis.txt' ).text
+
+def expected = '''
+UsedDeclaredArtifacts:
+ commons-io:commons-io:jar:2.4:compile
+ commons-lang:commons-lang:jar:2.6:compile
+
+UsedUndeclaredArtifactsWithClasses:
+
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/multimoduleProject/module1/pom.xml b/src/it/multimoduleProject/module1/pom.xml
similarity index 100%
rename from src/test/resources/multimoduleProject/module1/pom.xml
rename to src/it/multimoduleProject/module1/pom.xml
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/multimoduleProject/module1/src/main/java/foo/Main.java
similarity index 100%
copy from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
copy to src/it/multimoduleProject/module1/src/main/java/foo/Main.java
diff --git a/src/test/resources/multimoduleProject/module2/pom.xml b/src/it/multimoduleProject/module2/pom.xml
similarity index 78%
rename from src/test/resources/multimoduleProject/module2/pom.xml
rename to src/it/multimoduleProject/module2/pom.xml
index 7a0e8c8..e73d685 100644
--- a/src/test/resources/multimoduleProject/module2/pom.xml
+++ b/src/it/multimoduleProject/module2/pom.xml
@@ -38,4 +38,22 @@
       <version>${project.version}</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java b/src/it/multimoduleProject/module2/src/main/java/bar/Main.java
similarity index 100%
copy from src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
copy to src/it/multimoduleProject/module2/src/main/java/bar/Main.java
diff --git a/src/test/resources/multimoduleProject/pom.xml b/src/it/multimoduleProject/pom.xml
similarity index 93%
rename from src/test/resources/multimoduleProject/pom.xml
rename to src/it/multimoduleProject/pom.xml
index af2d351..06b8423 100644
--- a/src/test/resources/multimoduleProject/pom.xml
+++ b/src/it/multimoduleProject/pom.xml
@@ -33,10 +33,6 @@
     Test dependency:analyze on a multi-module project
   </description>
 
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-  
   <modules>
     <module>module1</module>
     <module>module2</module>
diff --git a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java b/src/it/multimoduleProject/verify.groovy
similarity index 72%
copy from src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
copy to src/it/multimoduleProject/verify.groovy
index be9a400..2463702 100644
--- a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
+++ b/src/it/multimoduleProject/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,9 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package bar;
 
-public class Main
-{
-    public foo.Main dummy = null;
-}
+def analysis = new File( basedir, 'module2/target/analysis.txt' ).text
+
+def expected = '''
+UsedDeclaredArtifacts:
+ org.apache.maven.its.dependency:test-module1:jar:1.0:compile
+
+UsedUndeclaredArtifactsWithClasses:
+
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/jarWithClassInUnnamedPackage/project2/pom.xml b/src/it/pom/pom.xml
similarity index 64%
rename from src/test/resources/jarWithClassInUnnamedPackage/project2/pom.xml
rename to src/it/pom/pom.xml
index c2aad12..3a92d53 100644
--- a/src/test/resources/jarWithClassInUnnamedPackage/project2/pom.xml
+++ b/src/it/pom/pom.xml
@@ -24,17 +24,26 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
 >
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-    <artifactId>jarWithClassInUnnamedPackage2</artifactId>
-    <packaging>jar</packaging>
-    <version>1.0</version>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+  <artifactId>pom</artifactId>
+  <packaging>pom</packaging>
+  <version>1.0</version>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-            <artifactId>jarWithClassInUnnamedPackage1</artifactId>
-            <version>1.0</version>
-        </dependency>
-    </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java b/src/it/pom/verify.groovy
similarity index 76%
copy from src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
copy to src/it/pom/verify.groovy
index be9a400..e545857 100644
--- a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
+++ b/src/it/pom/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,9 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package bar;
 
-public class Main
-{
-    public foo.Main dummy = null;
-}
+def analysis = new File( basedir, 'target/analysis.txt' ).text
+
+def expected = '''
+UsedDeclaredArtifacts:
+
+UsedUndeclaredArtifactsWithClasses:
+
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/it/settings.xml b/src/it/settings.xml
new file mode 100644
index 0000000..fee53c1
--- /dev/null
+++ b/src/it/settings.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<!--
+* 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.
+*
+-->
+<settings>
+  <profiles>
+    <profile>
+      <id>it-repo</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <repositories>
+        <repository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </pluginRepository>
+      </pluginRepositories>
+    </profile>
+  </profiles>
+</settings>
diff --git a/.github/workflows/maven-verify.yml b/src/it/setup-mock-plugin/invoker.properties
similarity index 72%
copy from .github/workflows/maven-verify.yml
copy to src/it/setup-mock-plugin/invoker.properties
index 1b3110d..d5d6ca5 100644
--- a/.github/workflows/maven-verify.yml
+++ b/src/it/setup-mock-plugin/invoker.properties
@@ -6,7 +6,7 @@
 # "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
+#   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
@@ -14,16 +14,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-name: Java CI
 
-on:
-  push:
-  pull_request:
-
-jobs:
-  build:
-    name: Verify
-    uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v2
-    with:
-      # remove after MSHARED-916
-      maven_version: '3.6.3'
+invoker.goals = install
diff --git a/src/it/setup-mock-plugin/pom.xml b/src/it/setup-mock-plugin/pom.xml
new file mode 100644
index 0000000..f5e3241
--- /dev/null
+++ b/src/it/setup-mock-plugin/pom.xml
@@ -0,0 +1,74 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+* 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.
+*
+-->
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+  <artifactId>maven-mock-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <version>1.0</version>
+
+  <dependencies>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+      <version>1</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>3.2.5</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>3.2.5</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-tools-annotations</artifactId>
+      <version>3.6.4</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-dependency-analyzer</artifactId>
+      <version>@project.version@</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-plugin-plugin</artifactId>
+          <version>3.6.4</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+</project>
diff --git a/src/it/setup-mock-plugin/src/main/java/it/test/MockAnalyzeMojo.java b/src/it/setup-mock-plugin/src/main/java/it/test/MockAnalyzeMojo.java
new file mode 100644
index 0000000..8d9fe65
--- /dev/null
+++ b/src/it/setup-mock-plugin/src/main/java/it/test/MockAnalyzeMojo.java
@@ -0,0 +1,104 @@
+package it.test;
+/*
+ * 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.
+ */
+
+import javax.inject.Inject;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+import java.nio.file.Files;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.dependency.analyzer.ProjectDependencyAnalysis;
+import org.apache.maven.shared.dependency.analyzer.ProjectDependencyAnalyzer;
+
+@Mojo( name = "mock-analyze", requiresDependencyResolution = ResolutionScope.TEST,
+       defaultPhase = LifecyclePhase.VERIFY )
+public class MockAnalyzeMojo extends AbstractMojo
+{
+    class UnixPrintWiter extends PrintWriter
+    {
+        public UnixPrintWiter( File file ) throws FileNotFoundException
+        {
+            super( file );
+        }
+
+        @Override
+        public void println()
+        {
+            write( '\n' );
+        }
+    }
+
+    @Inject
+    private ProjectDependencyAnalyzer analyzer;
+
+    @Inject
+    private MavenProject project;
+
+    @Parameter( defaultValue = "${project.build.directory}/analysis.txt", readonly = true )
+    private File output;
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException
+    {
+        try
+        {
+            ProjectDependencyAnalysis analysis = analyzer.analyze( project );
+
+            Files.createDirectories( output.toPath().getParent() );
+            try ( PrintWriter printWriter = new UnixPrintWiter( output ) )
+            {
+                printWriter.println();
+
+                printWriter.println( "UsedDeclaredArtifacts:" );
+                analysis.getUsedDeclaredArtifacts().forEach( a -> printWriter.println( " " + a ) );
+                printWriter.println();
+
+                printWriter.println( "UsedUndeclaredArtifactsWithClasses:" );
+                analysis.getUsedUndeclaredArtifactsWithClasses().forEach( ( a, c ) -> {
+                    printWriter.println( " " + a );
+                    c.forEach( i -> printWriter.println( "  " + i ) );
+                } );
+                printWriter.println();
+
+                printWriter.println( "UnusedDeclaredArtifacts:" );
+                analysis.getUnusedDeclaredArtifacts().forEach( a -> printWriter.println( " " + a ) );
+                printWriter.println();
+
+                printWriter.println( "TestArtifactsWithNonTestScope:" );
+                analysis.getTestArtifactsWithNonTestScope().forEach( a -> printWriter.println( " " + a ) );
+            }
+        }
+        catch ( Exception e )
+        {
+            throw new MojoExecutionException( "analyze failed", e );
+        }
+
+        getLog().info( "Analyze done" );
+    }
+}
diff --git a/src/test/resources/typeUseAnnotationDependency/annotation/pom.xml b/src/it/typeUseAnnotationDependency/annotation/pom.xml
similarity index 100%
rename from src/test/resources/typeUseAnnotationDependency/annotation/pom.xml
rename to src/it/typeUseAnnotationDependency/annotation/pom.xml
diff --git a/src/test/resources/typeUseAnnotationDependency/annotation/src/main/java/typeUseAnnotationDependency/annotation/Annotation.java b/src/it/typeUseAnnotationDependency/annotation/src/main/java/typeUseAnnotationDependency/annotation/Annotation.java
similarity index 100%
rename from src/test/resources/typeUseAnnotationDependency/annotation/src/main/java/typeUseAnnotationDependency/annotation/Annotation.java
rename to src/it/typeUseAnnotationDependency/annotation/src/main/java/typeUseAnnotationDependency/annotation/Annotation.java
diff --git a/src/test/resources/typeUseAnnotationDependency/pom.xml b/src/it/typeUseAnnotationDependency/pom.xml
similarity index 100%
rename from src/test/resources/typeUseAnnotationDependency/pom.xml
rename to src/it/typeUseAnnotationDependency/pom.xml
diff --git a/src/test/resources/unnamedPackageClassReference/pom.xml b/src/it/typeUseAnnotationDependency/usage/pom.xml
similarity index 67%
copy from src/test/resources/unnamedPackageClassReference/pom.xml
copy to src/it/typeUseAnnotationDependency/usage/pom.xml
index bd79056..e0aa307 100644
--- a/src/test/resources/unnamedPackageClassReference/pom.xml
+++ b/src/it/typeUseAnnotationDependency/usage/pom.xml
@@ -25,17 +25,34 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
-
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-  <artifactId>unnamedPackageClassReference</artifactId>
-  <version>1.0</version>
+  <artifactId>typeUseAnnotationDependencyUsage</artifactId>
   <packaging>jar</packaging>
+  <version>1.0</version>
 
   <dependencies>
     <dependency>
-      <groupId>dnsjava</groupId>
-      <artifactId>dnsjava</artifactId>
-      <version>2.1.8</version>
+      <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+      <artifactId>typeUseAnnotationDependencyAnnotation</artifactId>
+      <version>1.0</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/typeUseAnnotationDependency/usage/src/main/java/typeUseAnnotationDependency/usage/Usage.java b/src/it/typeUseAnnotationDependency/usage/src/main/java/typeUseAnnotationDependency/usage/Usage.java
similarity index 100%
rename from src/test/resources/typeUseAnnotationDependency/usage/src/main/java/typeUseAnnotationDependency/usage/Usage.java
rename to src/it/typeUseAnnotationDependency/usage/src/main/java/typeUseAnnotationDependency/usage/Usage.java
diff --git a/src/test/resources/unnamedPackageClassReference/pom.xml b/src/it/typeUseAnnotationDependency/usageLocalVar/pom.xml
similarity index 67%
copy from src/test/resources/unnamedPackageClassReference/pom.xml
copy to src/it/typeUseAnnotationDependency/usageLocalVar/pom.xml
index bd79056..631cfaa 100644
--- a/src/test/resources/unnamedPackageClassReference/pom.xml
+++ b/src/it/typeUseAnnotationDependency/usageLocalVar/pom.xml
@@ -25,17 +25,34 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
-
   <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-  <artifactId>unnamedPackageClassReference</artifactId>
-  <version>1.0</version>
+  <artifactId>typeUseAnnotationDependencyUsageLocalVar</artifactId>
   <packaging>jar</packaging>
+  <version>1.0</version>
 
   <dependencies>
     <dependency>
-      <groupId>dnsjava</groupId>
-      <artifactId>dnsjava</artifactId>
-      <version>2.1.8</version>
+      <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+      <artifactId>typeUseAnnotationDependencyAnnotation</artifactId>
+      <version>1.0</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/typeUseAnnotationDependency/usageLocalVar/src/main/java/typeUseAnnotationDependency/usageLocalVar/UsageLocalVar.java b/src/it/typeUseAnnotationDependency/usageLocalVar/src/main/java/typeUseAnnotationDependency/usageLocalVar/UsageLocalVar.java
similarity index 100%
rename from src/test/resources/typeUseAnnotationDependency/usageLocalVar/src/main/java/typeUseAnnotationDependency/usageLocalVar/UsageLocalVar.java
rename to src/it/typeUseAnnotationDependency/usageLocalVar/src/main/java/typeUseAnnotationDependency/usageLocalVar/UsageLocalVar.java
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/typeUseAnnotationDependency/verify.groovy
similarity index 50%
copy from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
copy to src/it/typeUseAnnotationDependency/verify.groovy
index 7ca91f7..1b372f6 100644
--- a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
+++ b/src/it/typeUseAnnotationDependency/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,17 +16,35 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package foo;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.model.Model;
+def analysisUsage = new File( basedir, 'usage/target/analysis.txt' ).text
 
-public class Main
-{
-    public static final String SCOPE_COMPILE = Artifact.SCOPE_COMPILE;
+def expectedUsage = '''
+UsedDeclaredArtifacts:
+ org.apache.maven.shared.dependency-analyzer.tests:typeUseAnnotationDependencyAnnotation:jar:1.0:compile
+
+UsedUndeclaredArtifactsWithClasses:
+
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysisUsage == expectedUsage
+
+def analysisUsageLocalVar = new File( basedir, 'usageLocalVar/target/analysis.txt' ).text
+
+def expectedUsageLocalVar = '''
+UsedDeclaredArtifacts:
+ org.apache.maven.shared.dependency-analyzer.tests:typeUseAnnotationDependencyAnnotation:jar:1.0:compile
+
+UsedUndeclaredArtifactsWithClasses:
+
+UnusedDeclaredArtifacts:
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysisUsageLocalVar == expectedUsageLocalVar
 
-    public Model model = null;
 
-    public Metadata metadata = null;
-}
diff --git a/src/test/resources/unnamedPackageClassReference/pom.xml b/src/it/unnamedPackageClassReference/pom.xml
similarity index 78%
rename from src/test/resources/unnamedPackageClassReference/pom.xml
rename to src/it/unnamedPackageClassReference/pom.xml
index bd79056..73fc4a3 100644
--- a/src/test/resources/unnamedPackageClassReference/pom.xml
+++ b/src/it/unnamedPackageClassReference/pom.xml
@@ -38,4 +38,22 @@
       <version>2.1.8</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/unnamedPackageClassReference/src/main/java/unnamedPackageClassReference/Project.java b/src/it/unnamedPackageClassReference/src/main/java/unnamedPackageClassReference/Project.java
similarity index 100%
rename from src/test/resources/unnamedPackageClassReference/src/main/java/unnamedPackageClassReference/Project.java
rename to src/it/unnamedPackageClassReference/src/main/java/unnamedPackageClassReference/Project.java
diff --git a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java b/src/it/unnamedPackageClassReference/verify.groovy
similarity index 74%
rename from src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
rename to src/it/unnamedPackageClassReference/verify.groovy
index be9a400..c55639a 100644
--- a/src/test/resources/multimoduleProject/module2/src/main/java/bar/Main.java
+++ b/src/it/unnamedPackageClassReference/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,9 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package bar;
 
-public class Main
-{
-    public foo.Main dummy = null;
-}
+def analysis = new File( basedir, 'target/analysis.txt' ).text
+
+def expected = '''
+UsedDeclaredArtifacts:
+
+UsedUndeclaredArtifactsWithClasses:
+
+UnusedDeclaredArtifacts:
+ dnsjava:dnsjava:jar:2.1.8:compile
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/resources/usedUndeclaredReference/pom.xml b/src/it/usedUndeclaredReference/pom.xml
similarity index 67%
rename from src/test/resources/usedUndeclaredReference/pom.xml
rename to src/it/usedUndeclaredReference/pom.xml
index 2a8e652..a05b3e7 100644
--- a/src/test/resources/usedUndeclaredReference/pom.xml
+++ b/src/it/usedUndeclaredReference/pom.xml
@@ -20,9 +20,9 @@
   -->
 
 <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/xsd/maven-4.0.0.xsd"
+    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/xsd/maven-4.0.0.xsd"
 >
   <modelVersion>4.0.0</modelVersion>
 
@@ -38,4 +38,22 @@
       <version>1.6.1</version>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
+        <artifactId>maven-mock-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>mock-analyze</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>
diff --git a/src/test/resources/usedUndeclaredReference/src/main/java/usedUndeclaredReference/Project.java b/src/it/usedUndeclaredReference/src/main/java/usedUndeclaredReference/Project.java
similarity index 100%
rename from src/test/resources/usedUndeclaredReference/src/main/java/usedUndeclaredReference/Project.java
rename to src/it/usedUndeclaredReference/src/main/java/usedUndeclaredReference/Project.java
diff --git a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java b/src/it/usedUndeclaredReference/verify.groovy
similarity index 70%
rename from src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
rename to src/it/usedUndeclaredReference/verify.groovy
index 7ca91f7..ea59292 100644
--- a/src/test/resources/multimoduleProject/module1/src/main/java/foo/Main.java
+++ b/src/it/usedUndeclaredReference/verify.groovy
@@ -6,9 +6,9 @@
  * 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
@@ -16,17 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package foo;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.model.Model;
+def analysis = new File( basedir, 'target/analysis.txt' ).text
 
-public class Main
-{
-    public static final String SCOPE_COMPILE = Artifact.SCOPE_COMPILE;
+def expected = '''
+UsedDeclaredArtifacts:
 
-    public Model model = null;
+UsedUndeclaredArtifactsWithClasses:
+ xml-apis:xml-apis:jar:1.0.b2:compile
+  org.apache.xmlcommons.Version
 
-    public Metadata metadata = null;
-}
+UnusedDeclaredArtifacts:
+ dom4j:dom4j:jar:1.6.1:compile
+
+TestArtifactsWithNonTestScope:
+'''
+
+assert analysis == expected
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
deleted file mode 100644
index ca615aa..0000000
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
+++ /dev/null
@@ -1,499 +0,0 @@
-package org.apache.maven.shared.dependency.analyzer;
-/*
- * 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.
- */
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DefaultArtifact;
-import org.apache.maven.artifact.handler.ArtifactHandler;
-import org.apache.maven.artifact.handler.DefaultArtifactHandler;
-import org.apache.maven.artifact.versioning.VersionRange;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.invoker.InvocationRequest;
-import org.apache.maven.shared.invoker.InvocationResult;
-import org.apache.maven.shared.test.plugin.BuildTool;
-import org.apache.maven.shared.test.plugin.ProjectTool;
-import org.apache.maven.shared.test.plugin.TestToolsException;
-import org.codehaus.plexus.PlexusTestCase;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.File;
-import java.nio.file.Files;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-/**
- * Tests <code>DefaultProjectDependencyAnalyzer</code>.
- *
- * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @see DefaultProjectDependencyAnalyzer
- */
-@RunWith( JUnit4.class )
-public class DefaultProjectDependencyAnalyzerTest
-    extends PlexusTestCase
-{
-    private BuildTool buildTool;
-
-    private ProjectTool projectTool;
-
-    private ProjectDependencyAnalyzer analyzer;
-
-    private static File localRepo;
-
-    /*
-     * @see org.codehaus.plexus.PlexusTestCase#setUp()
-     */
-    @Before
-    public void setUp()
-        throws Exception
-    {
-        super.setUp();
-
-        buildTool = (BuildTool) lookup( BuildTool.ROLE );
-
-        projectTool = (ProjectTool) lookup( ProjectTool.ROLE );
-
-        if ( localRepo == null )
-        {
-            localRepo = new File( System.getProperty( "local.repo" ) );
-            if ( !localRepo.isDirectory() )
-            {
-                Files.createDirectories( localRepo.toPath() );
-            }
-            System.out.println( "Local repository: " + localRepo );
-        }
-
-        analyzer = (ProjectDependencyAnalyzer) lookup( ProjectDependencyAnalyzer.class.getName() );
-    }
-
-    @Test
-    public void testPom()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "pom/pom.xml" );
-
-        MavenProject project = getProject( "pom/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project );
-
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis();
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testJarWithNoDependencies()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "jarWithNoDependencies/pom.xml" );
-
-        MavenProject project = getProject( "jarWithNoDependencies/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project );
-
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis();
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testJava8methodRefs()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        // Only visible through constant pool analysis (supported for JDK8+)
-        compileProject( "java8methodRefs/pom.xml" );
-
-        MavenProject project = getProject( "java8methodRefs/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project );
-
-        Artifact project1 = createArtifact( "commons-io", "commons-io", "jar", "2.4", "compile" );
-        Artifact project2 = createArtifact( "commons-lang", "commons-lang", "jar", "2.6", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( project1, project2 ) );
-
-        ProjectDependencyAnalysis expectedAnalysis =
-            new ProjectDependencyAnalysis( usedDeclaredArtifacts, new HashSet<>(), new HashSet<>(),
-                    new HashSet<>() );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testInlinedStaticReference()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        // Only visible through constant pool analysis (supported for JDK8+)
-        compileProject( "inlinedStaticReference/pom.xml" );
-
-        MavenProject project = getProject( "inlinedStaticReference/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project );
-
-        Artifact project1 = createArtifact( "dom4j", "dom4j", "jar", "1.6.1", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = Collections.singleton( project1 );
-
-        ProjectDependencyAnalysis expectedAnalysis =
-            new ProjectDependencyAnalysis( usedDeclaredArtifacts, new HashSet<>(), new HashSet<>(),
-                    new HashSet<>() );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testJarWithCompileDependency()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "jarWithCompileDependency/pom.xml" );
-
-        MavenProject project2 = getProject( "jarWithCompileDependency/project2/pom.xml" );
-
-        if ( project2.getBuild().getOutputDirectory().contains( "${" ) )
-        {
-            // if Maven version used as dependency is upgraded to >= 2.2.0
-            throw new TestToolsException( "output directory was not interpolated: "
-                + project2.getBuild().getOutputDirectory() );
-        }
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project2 );
-        
-        assertTrue( "Incorrectly classified Guava as testonly",
-                   actualAnalysis.getTestArtifactsWithNonTestScope().isEmpty() );
-
-        Artifact project1 = createArtifact( "org.apache.maven.shared.dependency-analyzer.tests",
-                                            "jarWithCompileDependency1", "jar", "1.0", "compile" );
-        Artifact guava = createArtifact( "com.google.guava", "guava", "jar", "30.1.1-android", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( project1, guava ) );
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, (Set<Artifact>) null, null,
-                null );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testForceDeclaredDependenciesUsage()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "jarWithTestDependency/pom.xml" );
-
-        MavenProject project2 = getProject( "jarWithTestDependency/project2/pom.xml" );
-
-        ProjectDependencyAnalysis analysis = analyzer.analyze( project2 );
-
-        try
-        {
-            analysis.forceDeclaredDependenciesUsage( new String[] {
-                "org.apache.maven.shared.dependency-analyzer.tests:jarWithTestDependency1" } );
-            fail( "failure expected since junit dependency is declared-used" );
-        }
-        catch ( ProjectDependencyAnalyzerException pdae )
-        {
-            assertTrue( pdae.getMessage().contains( "Trying to force use of dependencies which are "
-                + "declared but already detected as used: "
-                + "[org.apache.maven.shared.dependency-analyzer.tests:jarWithTestDependency1]" ) );
-        }
-
-        try
-        {
-            analysis.forceDeclaredDependenciesUsage( new String[] { "undefined:undefined" } );
-            fail( "failure expected since undefined dependency is not declared" );
-        }
-        catch ( ProjectDependencyAnalyzerException pdae )
-        {
-            assertTrue( pdae.getMessage().contains( "Trying to force use of dependencies which are "
-                + "not declared: [undefined:undefined]" ) );
-        }
-    }
-
-    @Test
-    public void testJarWithTestDependency()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "jarWithTestDependency/pom.xml" );
-
-        MavenProject project2 = getProject( "jarWithTestDependency/project2/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project2 );
-        
-        Artifact project1 = createArtifact( "org.apache.maven.shared.dependency-analyzer.tests",
-                                            "jarWithTestDependency1", "jar", "1.0", "test" );
-        Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "test" );
-
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( project1, junit ) );
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, (Set<Artifact>) null, null, null );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testJarWithXmlTransitiveDependency()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "jarWithXmlTransitiveDependency/pom.xml" );
-
-        MavenProject project = getProject( "jarWithXmlTransitiveDependency/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project );
-
-        Artifact jdom = createArtifact( "dom4j", "dom4j", "jar", "1.6.1", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = Collections.singleton( jdom );
-
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, (Set<Artifact>) null, null,
-                null );
-
-        // MSHARED-47: usedUndeclaredArtifacts=[xml-apis:xml-apis:jar:1.0.b2:compile]
-        // assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testJarWithCompileScopedTestDependency()
-            throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "jarWithCompileScopedTestDependency/pom.xml" );
-
-        MavenProject project2 = getProject( "jarWithCompileScopedTestDependency/project2/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project2 );
-
-        Artifact artifact1 = createArtifact( "org.apache.maven.shared.dependency-analyzer.tests",
-                "jarWithCompileScopedTestDependency1", "jar", "1.0", "test" );
-        Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "compile" );
-
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( artifact1, junit ) );
-        Set<Artifact> nonTestScopedTestArtifacts = Collections.singleton( junit );
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, (Set<Artifact>) null, null,
-                nonTestScopedTestArtifacts );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testJarWithRuntimeScopedTestDependency() throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        // We can't effectively analyze runtime dependencies at this time
-        compileProject( "jarWithRuntimeScopedTestDependency/pom.xml" );
-
-        MavenProject project2 = getProject( "jarWithRuntimeScopedTestDependency/project2/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project2 );
-
-        Artifact artifact1 = createArtifact( "org.apache.maven.shared.dependency-analyzer.tests",
-                "jarWithRuntimeScopedTestDependency1", "jar", "1.0", "test" );
-        Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "runtime" );
-
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( artifact1, junit ) );
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, (Set<Artifact>) null, null,
-                null );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testMultimoduleProject()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "multimoduleProject/pom.xml" );
-
-        // difficult to create multi-module project with Maven 2.x, so here's hacky solution
-        // to get a inter-module dependency
-        MavenProject project = getProject( "multimoduleProject/module2/pom.xml" );
-        @SuppressWarnings( "unchecked" )
-        Set<Artifact> dependencyArtifacts = project.getArtifacts();
-        for ( Artifact artifact : dependencyArtifacts )
-        {
-            if ( artifact.getArtifactId().equals( "test-module1" ) )
-            {
-                File dir = getTestFile( "target/test-classes/", "multimoduleProject/module1/target/classes/" );
-                artifact.setFile( dir );
-            }
-        }
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project );
-
-        Artifact junit = createArtifact( "org.apache.maven.its.dependency", "test-module1", "jar", "1.0", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = Collections.singleton( junit );
-
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, (Set<Artifact>) null, null,
-                null );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testTypeUseAnnotationDependency()
-            throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        Properties properties = new Properties();
-        properties.put( "maven.compiler.source", "1.8" );
-        properties.put( "maven.compiler.target", "1.8" );
-        compileProject( "typeUseAnnotationDependency/pom.xml", properties);
-
-        MavenProject usage = getProject( "typeUseAnnotationDependency/usage/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( usage );
-
-        Artifact annotation = createArtifact( "org.apache.maven.shared.dependency-analyzer.tests",
-                                            "typeUseAnnotationDependencyAnnotation", "jar", "1.0", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = Collections.singleton( annotation );
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis(usedDeclaredArtifacts, (Set<Artifact>) null, null,
-                null );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testTypeUseAnnotationDependencyOnLocalVariable()
-            throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        Properties properties = new Properties();
-        properties.put( "maven.compiler.source", "1.8" );
-        properties.put( "maven.compiler.target", "1.8" );
-        compileProject( "typeUseAnnotationDependency/pom.xml", properties);
-
-        MavenProject usage = getProject( "typeUseAnnotationDependency/usageLocalVar/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( usage );
-
-        Artifact annotation = createArtifact( "org.apache.maven.shared.dependency-analyzer.tests",
-                                            "typeUseAnnotationDependencyAnnotation", "jar", "1.0", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = Collections.singleton( annotation );
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis(usedDeclaredArtifacts, (Set<Artifact>) null, null,
-                null);
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testUnnamedPackageClassReference()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        // Only visible through constant pool analysis (supported for JDK8+)
-        compileProject( "unnamedPackageClassReference/pom.xml" );
-
-        MavenProject project = getProject( "unnamedPackageClassReference/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project );
-
-        Artifact dnsjava = createArtifact( "dnsjava", "dnsjava", "jar", "2.1.8", "compile" );
-        // we don't use any dnsjava classes so this should show up as an unused dep
-        Set<Artifact> unusedDeclaredArtifacts = Collections.singleton( dnsjava );
-
-        ProjectDependencyAnalysis expectedAnalysis =
-            new ProjectDependencyAnalysis( new HashSet<>(), new HashSet<>(), unusedDeclaredArtifacts,
-                new HashSet<>() );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testJarWithClassInUnnamedPackage()
-            throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "jarWithClassInUnnamedPackage/pom.xml" );
-
-        MavenProject project2 = getProject( "jarWithClassInUnnamedPackage/project2/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project2 );
-
-        Artifact project1 = createArtifact( "org.apache.maven.shared.dependency-analyzer.tests",
-                                            "jarWithClassInUnnamedPackage1", "jar", "1.0", "compile" );
-        Set<Artifact> unusedDeclaredArtifacts = Collections.singleton( project1 );
-        ProjectDependencyAnalysis expectedAnalysis = new ProjectDependencyAnalysis( null, null, unusedDeclaredArtifacts );
-
-        assertEquals( expectedAnalysis, actualAnalysis );
-    }
-
-    @Test
-    public void testUsedUndeclaredClassReference()
-        throws TestToolsException, ProjectDependencyAnalyzerException
-    {
-        compileProject( "usedUndeclaredReference/pom.xml" );
-
-        MavenProject project = getProject( "usedUndeclaredReference/pom.xml" );
-
-        ProjectDependencyAnalysis actualAnalysis = analyzer.analyze( project );
-
-        Artifact xmlApis = createArtifact( "xml-apis", "xml-apis", "jar", "1.0.b2", "compile" );
-        Set<Artifact> expectedUsedUndeclaredArtifacts = Collections.singleton( xmlApis );
-
-        assertEquals( expectedUsedUndeclaredArtifacts, actualAnalysis.getUsedUndeclaredArtifacts() );
-
-        Map<Artifact, Set<String>> expectedUsedUndeclaredArtifactsWithClasses =
-                Collections.singletonMap(xmlApis, Collections.singleton("org.apache.xmlcommons.Version") );
-
-        assertEquals( expectedUsedUndeclaredArtifactsWithClasses, actualAnalysis.getUsedUndeclaredArtifactsWithClasses() );
-    }
-
-    // private methods --------------------------------------------------------
-
-    private void compileProject( String pomPath )
-        throws TestToolsException
-    {
-        compileProject( pomPath, new Properties() );
-    }
-
-    private void compileProject(String pomPath, Properties properties) throws TestToolsException {
-        File pom = getTestFile( "target/test-classes/", pomPath );
-        if ( !properties.containsKey( "maven.compiler.source" ) )
-        {
-          properties.put( "maven.compiler.source", "1.8" );
-          properties.put( "maven.compiler.target", "1.8" );
-        }
-        
-        String httpsProtocols = System.getProperty( "https.protocols" );
-        if ( httpsProtocols != null )
-        {
-            properties.put( "https.protocols", httpsProtocols );
-        }
-
-        List<String> goals = Arrays.asList( "clean", "install" );
-        File log = new File( pom.getParentFile(), "build.log" );
-
-        InvocationRequest request = buildTool.createBasicInvocationRequest( pom, properties, goals, log );
-        request.setLocalRepositoryDirectory( localRepo );
-        request.setBatchMode( true );
-
-        InvocationResult result = buildTool.executeMaven( request );
-
-        assertNull( "Error compiling test project", result.getExecutionException() );
-        assertEquals( "Error compiling test project", 0, result.getExitCode() );
-    }
-
-    private MavenProject getProject( String pomPath )
-        throws TestToolsException
-    {
-        File pom = getTestFile( "target/test-classes/", pomPath );
-
-        return projectTool.readProjectWithDependencies( pom, localRepo );
-    }
-
-    private Artifact createArtifact( String groupId, String artifactId, String type, String version, String scope )
-    {
-        VersionRange versionRange = VersionRange.createFromVersion( version );
-        ArtifactHandler handler = new DefaultArtifactHandler();
-
-        return new DefaultArtifact( groupId, artifactId, versionRange, scope, type, null, handler );
-    }
-}
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
index 55d649a..09e519d 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
@@ -19,18 +19,20 @@ package org.apache.maven.shared.dependency.analyzer;
  * under the License.
  */
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
-
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.versioning.VersionRange;
 import org.junit.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
 /**
  * Tests <code>ProjectDependencyAnalysis</code>.
- * 
+ *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
  * @see ProjectDependencyAnalysis
  */
@@ -46,10 +48,47 @@ public class ProjectDependencyAnalysisTest
 
         ProjectDependencyAnalysis analysis =
             new ProjectDependencyAnalysis( usedDeclaredArtifacts, usedUndeclaredArtifacts, unusedDeclaredArtifacts,
-                    testArtifactsWithNonTestScope);
+                testArtifactsWithNonTestScope );
 
         assertThat( analysis.getUsedDeclaredArtifacts() ).isEqualTo( usedDeclaredArtifacts );
         assertThat( analysis.getUsedUndeclaredArtifacts() ).isEqualTo( usedUndeclaredArtifacts );
         assertThat( analysis.getUnusedDeclaredArtifacts() ).isEqualTo( unusedDeclaredArtifacts );
     }
+
+    @Test
+    public void ignoreNonCompileShouldFilterOnlyUnusedDeclare()
+    {
+        Artifact artifactCompile = aTestArtifact( "test1", Artifact.SCOPE_COMPILE );
+        Artifact artifactProvided = aTestArtifact( "test2", Artifact.SCOPE_PROVIDED );
+        Artifact artifactTest = aTestArtifact( "test3", Artifact.SCOPE_TEST );
+
+        ProjectDependencyAnalysis analysis = new ProjectDependencyAnalysis(
+            asSet( artifactCompile, artifactProvided, artifactTest ),
+            asSet( artifactCompile, artifactProvided, artifactTest ),
+            asSet( artifactCompile, artifactProvided, artifactTest ),
+            asSet( artifactCompile, artifactProvided, artifactTest ) );
+
+        ProjectDependencyAnalysis compileOnlyAnalysis = analysis.ignoreNonCompile();
+
+        assertThat( compileOnlyAnalysis.getUsedDeclaredArtifacts() ).hasSize( 3 );
+        assertThat( compileOnlyAnalysis.getUsedUndeclaredArtifacts() ).hasSize( 3 );
+
+        assertThat( compileOnlyAnalysis.getUnusedDeclaredArtifacts() )
+            .hasSize( 1 )
+            .allSatisfy( a -> assertThat( a.getScope() ).isEqualTo( Artifact.SCOPE_COMPILE ) );
+
+        assertThat( compileOnlyAnalysis.getTestArtifactsWithNonTestScope() )
+            .hasSize( 3 );
+    }
+
+    private <T> Set<T> asSet( T... items )
+    {
+        return new HashSet<>( Arrays.asList( items ) );
+    }
+
+    private Artifact aTestArtifact( String artifactId, String scope )
+    {
+        return new DefaultArtifact( "groupId", artifactId, VersionRange.createFromVersion( "1.0" ),
+            scope, "jar", "", null );
+    }
 }
diff --git a/src/test/resources/jarWithCompileDependency/project2/pom.xml b/src/test/resources/jarWithCompileDependency/project2/pom.xml
deleted file mode 100644
index bc920b8..0000000
--- a/src/test/resources/jarWithCompileDependency/project2/pom.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ 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.
-  -->
-
-<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/xsd/maven-4.0.0.xsd"
->
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-	<artifactId>jarWithCompileDependency2</artifactId>
-	<packaging>jar</packaging>
-	<version>1.0</version>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-			<artifactId>jarWithCompileDependency1</artifactId>
-			<version>1.0</version>
-		</dependency>
-		<dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>30.1.1-android</version>
-        </dependency>
-	</dependencies>	
-	
-</project>
diff --git a/src/test/resources/jarWithNoDependencies/pom.xml b/src/test/resources/jarWithNoDependencies/pom.xml
deleted file mode 100644
index 12fb6b3..0000000
--- a/src/test/resources/jarWithNoDependencies/pom.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ 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.
-  -->
-
-<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/xsd/maven-4.0.0.xsd"
->
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-	<artifactId>jarWithNoDependencies</artifactId>
-	<packaging>jar</packaging>
-	<version>1.0</version>
-	
-</project>
diff --git a/src/test/resources/jarWithTestDependency/project2/pom.xml b/src/test/resources/jarWithTestDependency/project2/pom.xml
deleted file mode 100644
index aae3501..0000000
--- a/src/test/resources/jarWithTestDependency/project2/pom.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ 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.
-  -->
-
-<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/xsd/maven-4.0.0.xsd"
->
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-	<artifactId>jarWithTestDependency2</artifactId>
-	<packaging>jar</packaging>
-	<version>1.0</version>
-	
-	<build>
-		<pluginManagement>
-			<plugins>
-				<plugin>
-					<groupId>org.apache.maven.plugins</groupId>
-					<artifactId>maven-surefire-plugin</artifactId>
-					<version>2.3.1</version>
-				</plugin>
-			</plugins>
-		</pluginManagement>
-	</build>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-			<artifactId>jarWithTestDependency1</artifactId>
-			<version>1.0</version>
-			<scope>test</scope>
-		</dependency>
-		
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-			<scope>test</scope>
-		</dependency>
-		
-	</dependencies>	
-	
-</project>
diff --git a/src/test/resources/java8methodRefs/pom.xml b/src/test/resources/java8methodRefs/pom.xml
deleted file mode 100644
index 261e8f0..0000000
--- a/src/test/resources/java8methodRefs/pom.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ 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.
-  -->
-
-<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/xsd/maven-4.0.0.xsd"
->
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-    <artifactId>java8methodreferences</artifactId>
-    <version>1.0</version>
-    <packaging>jar</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.4</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-            <version>2.6</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/src/test/resources/pom/pom.xml b/src/test/resources/pom/pom.xml
deleted file mode 100644
index a99afa0..0000000
--- a/src/test/resources/pom/pom.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ 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.
-  -->
-
-<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/xsd/maven-4.0.0.xsd"
->
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-	<artifactId>pom</artifactId>
-	<packaging>pom</packaging>
-	<version>1.0</version>
-	
-</project>
diff --git a/src/test/resources/typeUseAnnotationDependency/usage/pom.xml b/src/test/resources/typeUseAnnotationDependency/usage/pom.xml
deleted file mode 100644
index 6c46e6b..0000000
--- a/src/test/resources/typeUseAnnotationDependency/usage/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ 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.
-  -->
-
-<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/xsd/maven-4.0.0.xsd"
->
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-	<artifactId>typeUseAnnotationDependencyUsage</artifactId>
-	<packaging>jar</packaging>
-	<version>1.0</version>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-			<artifactId>typeUseAnnotationDependencyAnnotation</artifactId>
-			<version>1.0</version>
-		</dependency>
-	</dependencies>
-</project>
diff --git a/src/test/resources/typeUseAnnotationDependency/usageLocalVar/pom.xml b/src/test/resources/typeUseAnnotationDependency/usageLocalVar/pom.xml
deleted file mode 100644
index 26f42b7..0000000
--- a/src/test/resources/typeUseAnnotationDependency/usageLocalVar/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ 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.
-  -->
-
-<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/xsd/maven-4.0.0.xsd"
->
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-	<artifactId>typeUseAnnotationDependencyUsageLocalVar</artifactId>
-	<packaging>jar</packaging>
-	<version>1.0</version>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.maven.shared.dependency-analyzer.tests</groupId>
-			<artifactId>typeUseAnnotationDependencyAnnotation</artifactId>
-			<version>1.0</version>
-		</dependency>
-	</dependencies>
-</project>