You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "ppkarwasz (via GitHub)" <gi...@apache.org> on 2024/01/01 09:04:30 UTC

Re: [I] log4j-core >= 2.22.0: Missing spotbugs-annotations dependency (logging-log4j2)

ppkarwasz commented on issue #2144:
URL: https://github.com/apache/logging-log4j2/issues/2144#issuecomment-1873235561

   Hi @chrisribble,
   
   The dependencies on various annotation libraries **are** there, but they are in Maven's `provided` scope. This scope is the equivalent of Gradle's `compileOnly` configuration and is **not** transitive, so consumers of the artifacts don't get them automatically.
   
   This scope was chosen since these libraries contain only annotations (which cause no exception at runtime if missing) and most of them has a retention of `CLASS`, so they are visible only to the compiler. **Most** users don't need them, since accessing `log4j-core` programmatically is not recommended (it should be a `runtimeOnly` dependency).
   
   You can disable the compiler warnings with `-Xlint:all,-classFile`.
   
   May I ask why do you need to access `org.apache.logging.log4j.core.LoggerContext` in all your projects? Did you handle the case of users using another Log4j API implementation (e.g. `log4j-to-slf4j`)? Maybe this an opportunity to refactor your code and either put `log4j-core`-specific code in a separate library that will also handle other logging backends.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@logging.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org