Это может быть больше "я тоже", но я постараюсь наметить более полное решение. Я смешал в своем продукте много программного обеспечения из разных источников. Я столкнулся с этой проблемой сначала с JAR NiFi, затем совсем недавно с JAR Cassandra снова и снова. Я уже настоял в pom.xml , что у меня везде одна и та же версия slf4j:
<slf4j.version>[1.7.25]</slf4j.version>
...
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
... (all the slf4j JARs I needed)
Затем я сказал Мейвену, что хочу Кассандру без того, что она принесла для slf4j:
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
<version>${cassandra.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</dependency>
Однако, как и вы, я получал жалобы от
Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
at ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:112)
Из зависимости mvn: дерево я обнаружил, что получаю logback 1.1.3, который не соответствует тому, что, по-видимому, использует Кассандра (0.9 - что-то вроде вас). Итак, я также исключил получение logback, добавив эти исключения к уже существующим slf4j:
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
<version>${cassandra.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</dependency>
... после чего проблема, с которой я столкнулся, и которую вы здесь сообщаете, ушла. Надеюсь, это кому-нибудь поможет.