Java client with minimal dependencies

I'm using Ivy for dependency management (yep, I'm the one) instead of Maven. I just want to see if I can trim my dependencies at all for a simple Node Client?

Namely the whole Ivy config to Maven scope thing is a bit confusing. From what I can see the only scope defined in the pom is "test". I think that means that the remaining dependencies get the default scope of 'compile'.

I realize this hasn't happened yet...

and possibly even creating a thin Java client for Elasticsearch with minimal dependencies
ref: To shade or not to shade | Elastic Blog

ivy.xml
<dependency org="org.elasticsearch" name="elasticsearch" rev="2.2"/>

Retrieved libraries:

  1. lucene-core-5.3.1.jar
  2. lucene-backward-codecs-5.3.1.jar
  3. lucene-analyzers-common-5.3.1.jar
  4. lucene-queries-5.3.1.jar
  5. lucene-memory-5.3.1.jar
  6. lucene-highlighter-5.3.1.jar
  7. lucene-join-5.3.1.jar
  8. lucene-grouping-5.3.1.jar
  9. lucene-queryparser-5.3.1.jar
  10. lucene-sandbox-5.3.1.jar
  11. lucene-suggest-5.3.1.jar
  12. lucene-misc-5.3.1.jar
  13. lucene-spatial-5.3.1.jar
  14. lucene-spatial3d-5.3.1.jar
  15. spatial4j-0.5.jar
  16. guava-18.0.jar
  17. hppc-0.7.1.jar
  18. joda-time-2.8.2.jar
  19. joda-convert-1.2.jar
  20. jackson-core-2.6.2.jar
  21. jackson-dataformat-smile-2.6.2.jar
  22. jackson-dataformat-yaml-2.6.2.jar
  23. snakeyaml-1.15.jar
  24. jackson-dataformat-cbor-2.6.2.jar
  25. netty-3.10.5.Final.jar
  26. compress-lzf-1.0.2.jar
  27. t-digest-3.0.jar
  28. HdrHistogram-2.1.6.jar
  29. commons-cli-1.3.1.jar
  30. jsr166e-1.1.0.jar

Thought it couldn't hurt to ask, in case I missed a post or other document, maybe mentioning certain dependencies that could be excluded?

1 Like

I think you need almost everything for the Node Client.

For a TransportClient you might need less deps such as guava or joda but I never tested that so I'm unsure.