Skip to content

log4j-bom leaks non-Log4j dependencies #3066

Closed
apache/logging-parent
#265
@wilkinsona

Description

@wilkinsona

Description

log4j-bom inherits from logging-parent. Unfortunately, this results in log4j-bom managing a number of dependencies that are unrelated to a consumer's use of Log4j2. Those dependencies are:

  • biz.aQute.bnd:biz.aQute.bnd.annotation:7.0.0
  • com.github.spotbugs:spotbugs-annotations:4.8.6
  • org.jspecify:jspecify:1.0.0
  • org.osgi:osgi.annotation:8.1.0
  • org.osgi:org.osgi.annotation.bundle:2.0.0
  • org.osgi:org.osgi.annotation.versioning:1.1.2

org.apache.maven.plugin-tools:maven-plugin-annotations:3.13.1 is also being managed but this is inherited from the org.apache:apache pom and has already been reported and, pending an upgrade to use the new parent, fixed.

This unwanted dependency management can conflict with a user's own dependency management for those dependencies. Depending on how that dependency management is configured, it may override it leaving a consumer using an unexpected version of a dependency.

Configuration

Version: 2.21.0 and later. The list of dependencies above is from 2.24.1.

Operating system: Any

JDK: Any

Logs

N/A

Reproduction

Run mvn help:effective-pom in a project with the following pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.example</groupId>
	<artifactId>log4j-bom-problem</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-bom</artifactId>
				<version>2.24.1</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>
		</dependencies>
	</dependencyManagement>
</project>

The output will show a number of managed dependencies that aren't in the org.apache.logging.log4j group.

Metadata

Metadata

Assignees

Labels

bugIncorrect, unexpected, or unintended behavior of existing codedependenciesRelated to third party dependency updates or migrations

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions