Skip to content

Commit a20be31

Browse files
committed
Exclude logback-classic from bio-formats_plugins
It is really an optional dependency; the library works without it.
1 parent 951d4ef commit a20be31

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

pom.xml

+25
Original file line numberDiff line numberDiff line change
@@ -3488,6 +3488,31 @@
34883488
<groupId>ome</groupId>
34893489
<artifactId>bio-formats_plugins</artifactId>
34903490
<version>${ome.bio-formats_plugins.version}</version>
3491+
<exclusions>
3492+
<exclusion>
3493+
<!--
3494+
The banDuplicateClasses rule of the maven-enforcer-plugin reports a
3495+
conflict between logback-classic & slf4j-simple in some scenarios.
3496+
Both include an SLF4J binding (org.slf4j.impl.StaticLoggerBinder).
3497+
Perhaps the classpath of the tooling also includes slf4j-simple?
3498+
Regardless, it is generally problematic to inflict a specific SLF4J
3499+
binding on downstream consumers. "Embedded components such as
3500+
libraries or frameworks should not declare a dependency on any
3501+
SLF4J binding but only depend on slf4j-api."
3502+
See: https://www.slf4j.org/manual.html#libraries
3503+
3504+
In any case: the bio-formats_plugins usage of logback-classic is
3505+
limited to the class loci.plugins.util.IJStatusEchoer, accessed
3506+
only via reflection from ome-common's loci.common.DebugTools class,
3507+
with the intent that this dependency may or may not actually be
3508+
present at runtime. So this dependency really should be marked
3509+
optional in the bio-formats_plugins POM, but since it is not
3510+
marked so, we exclude it here in pom-scijava instead.
3511+
-->
3512+
<groupId>ch.qos.logback</groupId>
3513+
<artifactId>logback-classic</artifactId>
3514+
</exclusion>
3515+
</exclusions>
34913516
</dependency>
34923517
<dependency>
34933518
<groupId>ome</groupId>

0 commit comments

Comments
 (0)