Class path contains multiple SLF4J bindings, exclusion not working,
I get the following error:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/Vash/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Vash/.m2/repository/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.jar!/org/slf4j /impl/StaticLoggerBinder.class]
I've already checked https://www.slf4j.org/codes.html#multiple_bindings
and similar questions. I've found using mvn dependency:tree that 4 dependencies use SLF4J so I've added the exclusion to them like this:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
This didn't change anything and I still get the same error. I've tried deleting the .jar files specified in the warning but then I get error about missing classes. Also I'm using IntelliJ so maybe somehow reloading the pom.xml file is the issue here?
java maven
add a comment |
I get the following error:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/Vash/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Vash/.m2/repository/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.jar!/org/slf4j /impl/StaticLoggerBinder.class]
I've already checked https://www.slf4j.org/codes.html#multiple_bindings
and similar questions. I've found using mvn dependency:tree that 4 dependencies use SLF4J so I've added the exclusion to them like this:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
This didn't change anything and I still get the same error. I've tried deleting the .jar files specified in the warning but then I get error about missing classes. Also I'm using IntelliJ so maybe somehow reloading the pom.xml file is the issue here?
java maven
1
The first exclusion is wrong: the artifact to be excluded isorg.slf4j:slf4j-jdk14
.
– Robert
Mar 18 at 13:01
add a comment |
I get the following error:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/Vash/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Vash/.m2/repository/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.jar!/org/slf4j /impl/StaticLoggerBinder.class]
I've already checked https://www.slf4j.org/codes.html#multiple_bindings
and similar questions. I've found using mvn dependency:tree that 4 dependencies use SLF4J so I've added the exclusion to them like this:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
This didn't change anything and I still get the same error. I've tried deleting the .jar files specified in the warning but then I get error about missing classes. Also I'm using IntelliJ so maybe somehow reloading the pom.xml file is the issue here?
java maven
I get the following error:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/Vash/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Vash/.m2/repository/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.jar!/org/slf4j /impl/StaticLoggerBinder.class]
I've already checked https://www.slf4j.org/codes.html#multiple_bindings
and similar questions. I've found using mvn dependency:tree that 4 dependencies use SLF4J so I've added the exclusion to them like this:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
This didn't change anything and I still get the same error. I've tried deleting the .jar files specified in the warning but then I get error about missing classes. Also I'm using IntelliJ so maybe somehow reloading the pom.xml file is the issue here?
java maven
java maven
asked Nov 14 '18 at 22:01
VashVash
286
286
1
The first exclusion is wrong: the artifact to be excluded isorg.slf4j:slf4j-jdk14
.
– Robert
Mar 18 at 13:01
add a comment |
1
The first exclusion is wrong: the artifact to be excluded isorg.slf4j:slf4j-jdk14
.
– Robert
Mar 18 at 13:01
1
1
The first exclusion is wrong: the artifact to be excluded is
org.slf4j:slf4j-jdk14
.– Robert
Mar 18 at 13:01
The first exclusion is wrong: the artifact to be excluded is
org.slf4j:slf4j-jdk14
.– Robert
Mar 18 at 13:01
add a comment |
1 Answer
1
active
oldest
votes
I think this is a bug/feature in Maven. Let's assume you have this dependency tree:
A
+---B
+---C
| +---D
|
+---D
and you exclude D
on B
, it will still be there because C
also pulls it in. From Maven's point of view this makes sense because it doesn't try to understand whether there is a relationship between B
and C
. We know that they're all from Spring but Maven can't be so sure.
Solution: You need to duplicate the exclusion on C
in your POM.
Use mvn dependency:tree
to find all places where D
is being used and add one exclusion each.
And make sure you actually exclude D
. In your example above, you exclude org.slf4j:slf4j-log4j12
instead of org.slf4j:slf4j-jdk14
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53309378%2fclass-path-contains-multiple-slf4j-bindings-exclusion-not-working%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I think this is a bug/feature in Maven. Let's assume you have this dependency tree:
A
+---B
+---C
| +---D
|
+---D
and you exclude D
on B
, it will still be there because C
also pulls it in. From Maven's point of view this makes sense because it doesn't try to understand whether there is a relationship between B
and C
. We know that they're all from Spring but Maven can't be so sure.
Solution: You need to duplicate the exclusion on C
in your POM.
Use mvn dependency:tree
to find all places where D
is being used and add one exclusion each.
And make sure you actually exclude D
. In your example above, you exclude org.slf4j:slf4j-log4j12
instead of org.slf4j:slf4j-jdk14
add a comment |
I think this is a bug/feature in Maven. Let's assume you have this dependency tree:
A
+---B
+---C
| +---D
|
+---D
and you exclude D
on B
, it will still be there because C
also pulls it in. From Maven's point of view this makes sense because it doesn't try to understand whether there is a relationship between B
and C
. We know that they're all from Spring but Maven can't be so sure.
Solution: You need to duplicate the exclusion on C
in your POM.
Use mvn dependency:tree
to find all places where D
is being used and add one exclusion each.
And make sure you actually exclude D
. In your example above, you exclude org.slf4j:slf4j-log4j12
instead of org.slf4j:slf4j-jdk14
add a comment |
I think this is a bug/feature in Maven. Let's assume you have this dependency tree:
A
+---B
+---C
| +---D
|
+---D
and you exclude D
on B
, it will still be there because C
also pulls it in. From Maven's point of view this makes sense because it doesn't try to understand whether there is a relationship between B
and C
. We know that they're all from Spring but Maven can't be so sure.
Solution: You need to duplicate the exclusion on C
in your POM.
Use mvn dependency:tree
to find all places where D
is being used and add one exclusion each.
And make sure you actually exclude D
. In your example above, you exclude org.slf4j:slf4j-log4j12
instead of org.slf4j:slf4j-jdk14
I think this is a bug/feature in Maven. Let's assume you have this dependency tree:
A
+---B
+---C
| +---D
|
+---D
and you exclude D
on B
, it will still be there because C
also pulls it in. From Maven's point of view this makes sense because it doesn't try to understand whether there is a relationship between B
and C
. We know that they're all from Spring but Maven can't be so sure.
Solution: You need to duplicate the exclusion on C
in your POM.
Use mvn dependency:tree
to find all places where D
is being used and add one exclusion each.
And make sure you actually exclude D
. In your example above, you exclude org.slf4j:slf4j-log4j12
instead of org.slf4j:slf4j-jdk14
answered Mar 18 at 13:03
Aaron DigullaAaron Digulla
249k87477696
249k87477696
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53309378%2fclass-path-contains-multiple-slf4j-bindings-exclusion-not-working%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
The first exclusion is wrong: the artifact to be excluded is
org.slf4j:slf4j-jdk14
.– Robert
Mar 18 at 13:01