aboutsummaryrefslogtreecommitdiffstats
path: root/pom.xml
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2021-04-12 13:16:29 +0700
committerAlexander Kriegisch <Alexander@Kriegisch.name>2021-04-12 13:16:29 +0700
commitf00f547d7b37647880e7f8fc030f9f96dbad9848 (patch)
treeec5812ad1a35103fadd6668527df0926494c8d51 /pom.xml
parent9c62d17de4f69c5cd4c4c35a3ab2d1263109e163 (diff)
downloadaspectj-f00f547d7b37647880e7f8fc030f9f96dbad9848.tar.gz
aspectj-f00f547d7b37647880e7f8fc030f9f96dbad9848.zip
Clean up Maven dependencies using 'dependency:analyze' goal
Notably, this change involves a partial revert of @4a5660b3, because we are not using JUnit Jupiter yet but still JUnit 4 tests. See discussion under commit at https://github.com/eclipse/org.aspectj/commit/4a5660b3. Many other warnings - concerning both used undeclared and unused declared dependencies - were eliminated by adding or removing the corresponding dependencies from the POMs. Furthermore, I tried to make sure that some clearly test-scoped dependencies are now actually declared as such, so as to avoid unwanted transitivity bleeding into compile scope and maybe unwanted classes ending up in uber JARs via Maven Shade or Maven Assembly. TODO: I am not so sure why modules other than 'run-all-unit-tests' would depend on test JARs. I hope I broke nothing essential there. As of today, the other modules where I found '<type>test-jar</type>' dependencies are: - ajde - testing - testing-drivers - tests - weaver Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'pom.xml')
-rw-r--r--pom.xml45
1 files changed, 33 insertions, 12 deletions
diff --git a/pom.xml b/pom.xml
index e94ede8c5..81b26d744 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,6 +206,11 @@
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>3.1.2</version>
+ </plugin>
</plugins>
</pluginManagement>
@@ -247,6 +252,22 @@
<artifactId>maven-help-plugin</artifactId>
</plugin>
+ <!--
+ This plugin is nice to have in the POM, because then it is easy to double-click a goal such as 'analyze' or
+ 'tree' from a modern IDE in order to inspect dependency management in the project.
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>3.1.2</version>
+ <configuration>
+ <ignoredUnusedDeclaredDependencies>
+ <!-- Declared in parent POM for convenience, but not used in every module -->
+ <ignoredUnusedDeclaredDependency>junit:junit:jar</ignoredUnusedDeclaredDependency>
+ </ignoredUnusedDeclaredDependencies>
+ </configuration>
+ </plugin>
+
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
@@ -303,6 +324,12 @@
<scope>import</scope>
</dependency>
<dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.13.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.aspectj</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>${jdt.core.version}</version>
@@ -327,19 +354,13 @@
</dependencyManagement>
<dependencies>
+ <!--
+ Actually, it would be cleaner to only define JUnit only it modules which actually use it. But since this comprises
+ the majority, we can afford to be a little bit unclean here with regard to dependency management.
+ -->
<dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-api</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-engine</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>