embulk/gradle-embulk-plugins

Installing Java-based plugins without gems

emersonf opened this issue · 3 comments

I'd like modify existing Java Embulk plugins and create new ones. The v0.10 documentation says "Java-based Embulk plugins are to be released as Maven artifacts", and I'd rather do that then set up infrastructure for gems.

Once plugin JARs are published to a Maven repository, how would that plugin (and its transitive dependencies) be made availble to Embulk? e.g. is there a Maven/Ivy/Gradle equivalent to embulk gem install embulk-input-mongodb? Do they just need to get dropped under lib/? Or is there a more structured way to install them? I've scoured the documentation, but I can't find a recommendation.

I wasn't sure where else to ask this, sorry if it's in the wrong place. Maybe #embulk-dev?

Hello, @emersonf

As far as I know, there is no maven-based plugin yet.
Here is the design doc.
Maven-based Plugins

You will install a plugin using another command instead of embulk gem install. IIUC, It's not implemented yet.

Sorry, I was not aware of this issue.

Actually, there have been many Mave-based plugins already released. embulk-input-*, embulk-output-*, and else there in Maven Central are Maven-based plugins.

https://repo1.maven.org/maven2/org/embulk/

But unfortunately, as @emersonf pointed out, there is no embulk command to install Maven-based plugins yet. Such a command will be available at some point in v0.11.

As hacker's alternative, you can somehow download them as normal Maven dependency downloads. There are several ways with mvn, gradle, or else.

Once you build a local Maven repository, which is similar to ~/.m2/repository, you can use it by specifying an environment varaible M2_REPO, or an Embulk system property m2_repo.

This feature would be implemented in https://github.com/embulk/embulk in v0.11, anyway, not this repo. Closing this issue.