NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor überschneidet sich mit Elastic Search jar

Während ich Elasticsearch Client erstelle, erhalte ich die Ausnahme java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor () Ljava / util / concurrent / Executor; Nach einigem Nachschlagen werden Nähte wie der Guava-18 zur Laufzeit von einer älteren Version überschrieben, und Guava-18 funktioniert nur während der Kompilierung.

Meine Maven-Konfiguration lautet wie folgt:

    <build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Wie kann ich die Guava-18-Version zur Ausführungszeit erzwingen?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage