Removed outdated docs about shading Elasticsearch

This commit is contained in:
Martijn van Groningen 2018-03-14 17:16:48 +01:00
parent cb9d10f971
commit ab2d74c001
No known key found for this signature in database
GPG Key ID: AB236F4FCF2AF12A
1 changed files with 0 additions and 56 deletions

View File

@ -130,62 +130,6 @@ and add it as a dependency. As an example, we will use the `slf4j-simple` logger
</dependency>
--------------------------------------------------
== Dealing with JAR dependency conflicts
If you want to use Elasticsearch in your Java application, you may have to deal with version conflicts with third party
dependencies like Guava and Joda. For instance, perhaps Elasticsearch uses Joda 2.8, while your code uses Joda 2.1.
You have two choices:
* The simplest solution is to upgrade. Newer module versions are likely to have fixed old bugs.
The further behind you fall, the harder it will be to upgrade later. Of course, it is possible that you are using a
third party dependency that in turn depends on an outdated version of a package, which prevents you from upgrading.
* The second option is to relocate the troublesome dependencies and to shade them either with your own application
or with Elasticsearch and any plugins needed by the Elasticsearch client.
The https://www.elastic.co/blog/to-shade-or-not-to-shade["To shade or not to shade" blog post] describes
all the steps for doing so.
== Embedding jar with dependencies
If you want to create a single jar containing your application and all dependencies, you should not
use `maven-assembly-plugin` for that because it can not deal with `META-INF/services` structure which is
required by Lucene jars.
Instead, you can use `maven-shade-plugin` and configure it as follow:
[source,xml]
--------------------------------------------------
<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>
--------------------------------------------------
Note that if you have a `main` class you want to automatically call when running `java -jar yourjar.jar`, just add
it to the `transformers`:
[source,xml]
--------------------------------------------------
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.elasticsearch.demo.Generate</mainClass>
</transformer>
--------------------------------------------------
:client-tests: {docdir}/../../server/src/test/java/org/elasticsearch/client/documentation
include::client.asciidoc[]