diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2021-04-12 13:16:29 +0700 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2021-04-12 13:16:29 +0700 |
commit | f00f547d7b37647880e7f8fc030f9f96dbad9848 (patch) | |
tree | ec5812ad1a35103fadd6668527df0926494c8d51 /pom.xml | |
parent | 9c62d17de4f69c5cd4c4c35a3ab2d1263109e163 (diff) | |
download | aspectj-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.xml | 45 |
1 files changed, 33 insertions, 12 deletions
@@ -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> |