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'
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。