Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.2
-
Fix Version/s: 1.3
-
Component/s: Build/distribution
-
Labels:None
-
Application server:N/A (Tomcat)
Description
DisplayTag transitive dependencies cause erroneous configuration on client projects. Specifically, DisplayTag should depend on only slf4j-api in the compile scope, resulting in exposing only that required dependency to client apps, and the slf4j-log4j12 and jcl104-over-slf4j dependencies should be removed (or changed to test scope if wanted for local testing).
slf4j-api would be a new direct dependency to DisplayTag. It currently is transitively brought in through the slf4j-log4j12 direct dependency.
I noticed this because, after just adding DisplayTag to my web app, SLF4J gave error messages on multiple SLF4J bindings on app startup - one binding is correctly from my POM/app config (found in logback-classic) and the other is erroneously exposed transitively from DisplayTag's dependency slf4j-log4j12.
See http://www.slf4j.org/codes.html#multiple_bindings for the SLF4J error.
The root cause is the DisplayTag POM exposing slf4j-log4j12 and jcl104-over-slf4j dependencies. Client apps do not need those specifically, e.g. slf4j-log4j12 is not needed with Logback.
This dependency configuration approach also forces client apps to have log4j on the classpath transitively from slf4j-log4j12. We do not use Log4J.
slf4j-api would be a new direct dependency to DisplayTag. It currently is transitively brought in through the slf4j-log4j12 direct dependency.
I noticed this because, after just adding DisplayTag to my web app, SLF4J gave error messages on multiple SLF4J bindings on app startup - one binding is correctly from my POM/app config (found in logback-classic) and the other is erroneously exposed transitively from DisplayTag's dependency slf4j-log4j12.
See http://www.slf4j.org/codes.html#multiple_bindings for the SLF4J error.
The root cause is the DisplayTag POM exposing slf4j-log4j12 and jcl104-over-slf4j dependencies. Client apps do not need those specifically, e.g. slf4j-log4j12 is not needed with Logback.
This dependency configuration approach also forces client apps to have log4j on the classpath transitively from slf4j-log4j12. We do not use Log4J.