Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make non-public Cloudera connector dependencies optional #6

Open
turu opened this issue Oct 14, 2017 · 0 comments
Open

Make non-public Cloudera connector dependencies optional #6

turu opened this issue Oct 14, 2017 · 0 comments

Comments

@turu
Copy link
Contributor

turu commented Oct 14, 2017

When using liquibase on Cloudera cluster via a binary release, it's convenient to have a liquibase-impala fat-jar with all necessary (non-public) Hive&Impala dependencies bundled inside. However by setting strict compile dependency on those libraries, we are preventing ourselves from being able to:

  1. Release liquibase-impala to a public Maven repository, so that people running liquibase via Maven plugin can start using liquibase-impala with no extra-installation steps at all (provided that they already have Cloudera connectors or are planning to use other drivers instead: see Add support for Apache Hive(2) Driver #5 ).
  2. Make a binary release on Github, so that people running liquibase via a binary can start using liquibase-impala with no installation steps at all (provided that they already have Cloudera connectors or are planning to use other drivers instead: see Add support for Apache Hive(2) Driver #5 ) - other than downloading a jar from Github that is.
  3. Allow people to use liquibase-impala with different versions of Hive/Impala drivers than those declared in liquibase-impala pom.

To alleviate this situation, we could make non-public (or all non-essential) Cloudera dependencies optional and place them in a Maven profile (see https://cwiki.apache.org/confluence/display/MAVENOLD/Profiles+for+optional+dependencies). That way, all of the below scenarios would be easily achievable:

  1. Creating a fat-jar with all present Cloudera dependencies bundled inside - just like now.
  2. Releasing liquibase-impala to a public Maven repo, without hardcoded dependencies on any particular drivers, so that people using liquibase via Maven plugin could use any driver in any version they like.
  3. Creating a binary release on Github, without any driver dependencies bundled inside, so that people using a binary release of Liquibase can use any driver in any version they like.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant