Where are plugins in Maven now?

We were fetching plugins from Maven using the zip artifacts in our build:

  elasticsearch_analysis_icu: [
    'org.elasticsearch.plugin:analysis-icu:2.4.1@zip',
  ],

  elasticsearch_analysis_kuromoji: [
    'org.elasticsearch.plugin:analysis-kuromoji:2.4.1@zip',
  ],

Now we're using elasticsearch 5.1.2. I have checked a few Maven repositories and I don't see a 5.1.2 release for the plugins.

I assume that the group has changed or something but I can't seem to find the new group.

Could someone point me in the right direction?

ZIP files are now published on elasticsearch download service but not anymore on maven central nor on elastic maven repository.

You will find the exact URL in the plugin doc page. Like https://www.elastic.co/guide/en/elasticsearch/plugins/5.1/analysis-icu.html#analysis-icu-install

The url is https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-5.1.2.zip

Eww. That's unfortunate... :frowning:

I guess I'll just copy them into the artifact server on our side, into the position they used to be at. But this increases the amount of work to do each update.

... Actually, now that I have cleared that barrier, the jars also seem to be missing from Maven. :frowning:

Can't we just get the artifacts deployed?

Yeah. That's what I said previously. You can only use elastic download service for plugins. Some plugins are available on Maven central but they are only the ones which are required by the Java Transport Client.

When the Transport Client will be deprecated (then removed), probably those plugins won't be published anymore.

As a workaround you can use a similar recipe I explained in:

Gotta say I am disappointed by this; this complicates how custom "builds" can be made. We have our own "sbt pipeline" of building services (Elasticsearch being one of them).

In 2.x we could simply create our own "fat JAR" and define the dependencies we needed (e.g. "org.elasticsearch.plugin" % "analysis-icu" % "2.32"). How is this supposed to work, if we were to upgrade to 5.x? There's a good reason why Maven exists, why not utilize it?

Normally you don't need to embed analysis plugin in your application. It's a plugin which must be used only in elasticsearch (the server).

What are you trying to do?

The service we build with the sbt is "the Elasticsearch server". Currently our dependencies are (elasticsearch-wise):

"org.elasticsearch"        % "elasticsearch" % "2.3.2"
"org.elasticsearch.plugin" % "analysis-icu"  % "2.3.2"

We have maany different services, and like to bootstrap and release them right thru the sbt in a similar manner.

This enables us to update our custom Elasticsearch-plugins right thru the sbt, and bundle them in one JAR-file (i.e. the elasticsearch server including custom plugins).

I know this isn't how most users use the server, and I guess most just download the "server ZIP file". But we build most of our services on JVM (Scala), and would like to take advantage of that by including elasticsearch as a Maven-dependency just like everything else.

It's not supported. It means that you are probably on your own.

So basically, download the Zip from our service then unzip and repackage.

But I'm sure there are plenty of other way to distribute a full elasticsearch version with all the plugins you need.

I used to work on a project that used span queries, which does not analyze
term. To get around this issue, we would recreate the analysis server
locally and analyze the terms. Worked perfectly. Sadly elasticsearch is
becoming less flexible.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.