Why ActiveMQ use sl4j like this?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Why ActiveMQ use sl4j like this?

Lara
because the activemq-all-5.15.2.jar has packaged sl4j as part of itself, it
can cause conflict when I want to use the different version of sl4j.
something like

java.lang.NoClassDefFoundError: Could not initialize class org.slf4j.MDC


otherwise, I have to pick out each jar that I want, such as
activemq-client-5.15.2.jar and others. So what is the better way to use both
activemq and sl4j together?




--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: Why ActiveMQ use sl4j like this?

christopher.l.shannon
The best approach is to use something like Maven or Gradle that supports
dependency management for your application.  Using a build tool with
dependency management will allow you to pull in all the transitive
dependencies you need automatically for activemq-client (and other activemq
jars that you list) and you can easily override and manage certain versions
such as SLF4J.  Yes you still have to list out the specific ActiveMQ jars
that you need but usually you can just start with activemq-client for the
client and activemq-broker for the server side.  Those will pull in most
dependencies and you can add others as needed (such as jars for other wire
protocols)

On Tue, Dec 26, 2017 at 4:32 AM, Lara <[hidden email]> wrote:

> because the activemq-all-5.15.2.jar has packaged sl4j as part of itself, it
> can cause conflict when I want to use the different version of sl4j.
> something like
>
> java.lang.NoClassDefFoundError: Could not initialize class org.slf4j.MDC
>
>
> otherwise, I have to pick out each jar that I want, such as
> activemq-client-5.15.2.jar and others. So what is the better way to use
> both
> activemq and sl4j together?
>
>
>
>
> --
> Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805
> .html
>