Java Low Level REST Client 入门

本节描述从获取工件到在应用程序中使用它如何开始使用低级别REST客户端。

Javadoc

可以在https://artifacts.elastic.co/javadoc/org/elasticsearch/client/elasticsearch-rest-client/6.4.2/index.html找到低级别REST客户端的javadoc。

Maven仓库

低级别Java REST客户端托管在Maven Central上,所需的最低Java版本是1.7

低级别REST客户端与Elasticsearch具有相同的发布周期,将版本替换为想要的客户端版本,首先使用5.0.0-alpha4发布版,客户端版本与客户端可以与之通信的Elasticsearch版本之间没有任何关系,低级别REST客户端与所有Elasticsearch版本兼容。

如果你正在寻找SNAPSHOT版本,可以通过https://snapshots.elastic.co/maven/获取Elastic Maven Snapshot存储库。

Maven配置

以下是如何使用maven作为依赖关系管理器来配置依赖关系,将以下内容添加到pom.xml文件中:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>6.4.2</version>
</dependency>

Gradle配置

以下是使用gradle作为依赖关系管理器配置依赖关系的方法,将以下内容添加到build.gradle文件中:

dependencies {
    compile 'org.elasticsearch.client:elasticsearch-rest-client:6.4.2'
}

依赖关系

低级别的Java REST客户端内部使用Apache Http Async Client发送Http请求,它依赖于以下构件,即异步http客户端及其自身传递依赖关系:

  • org.apache.httpcomponents:httpasyncclient
  • org.apache.httpcomponents:httpcore-nio
  • org.apache.httpcomponents:httpclient
  • org.apache.httpcomponents:httpcore
  • commons-codec:commons-codec
  • ommons-logging:commons-logging

Shading

为了避免版本冲突,可以在单个JAR文件(有时称为“uber JAR”或“fat JAR”)中对依赖关系进行shaded并打包在客户端中,Shading依赖项包括获取其内容(资源文件和Java类文件)并重命名其某些包,然后将它们放入与低级别Java REST客户端相同的JAR文件中,可以通过Gradle和Maven的第三方插件来完成对JAR的Shading。

请注意,对JAR进行shading也会产生影响,例如,对Commons Logging图层进行Shading意味着第三方日志记录后端也需要shaded。

Maven配置

这是使用Maven Shade插件的配置,将以下内容添加到pom.xml文件中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals><goal>shade</goal></goals>
                    <configuration>
                        <relocations>
                            <relocation>
                                <pattern>org.apache.http</pattern>
                                <shadedPattern>hidden.org.apache.http</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.logging</pattern>
                                <shadedPattern>hidden.org.apache.logging</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.commons.codec</pattern>
                                <shadedPattern>hidden.org.apache.commons.codec</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.commons.logging</pattern>
                                <shadedPattern>hidden.org.apache.commons.logging</shadedPattern>
                            </relocation>
                        </relocations>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Gradle配置

这是使用Gradle ShadowJar插件的配置,将以下内容添加到build.gradle文件中:

shadowJar {
    relocate 'org.apache.http', 'hidden.org.apache.http'
    relocate 'org.apache.logging', 'hidden.org.apache.logging'
    relocate 'org.apache.commons.codec', 'hidden.org.apache.commons.codec'
    relocate 'org.apache.commons.logging', 'hidden.org.apache.commons.logging'
}

上一篇:Elasticsearch Java REST Client 目录
下一篇:初始化

博弈
2.5k 声望1.5k 粉丝

态度决定一切