Skip to content

Resolving of Elasticsearch Transport Client with Apache Ivy/Ant fails (since 5.4.0) #24490

@uschindler

Description

@uschindler

Hi,

I updated a Ivy-based Ant project that uses the Elasticsearch Transport Client a minute ago. After updating the dependency to the transport client (5.3.2 => 5.4.0) suddenly the project failed to build. Reason was, that some transitive dependencies of Elasticsearch were missing (e.g. Lucene itsself, various others).

The reason for this is #23809: Previously all the transitive dependencies in ES were excluded "one by one" in the POM file (see exclusions on each dependency): http://repo1.maven.org/maven2/org/elasticsearch/elasticsearch/5.3.2/elasticsearch-5.3.2.pom

In 5.4.0 it now has a *:* exclusion instead: http://repo1.maven.org/maven2/org/elasticsearch/elasticsearch/5.4.0/elasticsearch-5.4.0.pom

This seems to work with Maven (I built a plugin that uses Maven to refer to Elasticsearch and its transitive deps), but Apache Ivy/Ant breaks horribly. It seems that a bug in Ivy (2.3.0 and 2.4.0) causes that the * matches not only the transitives of elasticsearch, but also the declared dependency itsself. This causes that Ivy ignores all dependencies in Elasticsearch that are marked with this *:* exclusison pattern.

I am quite sure this is a bug in Ivy, but I don't think that gets fixed in time (Ant's Ivy project is almost dead...?).

As Gradle also uses Ivy internally, are we sure this works with Gradle?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions