Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-3589

JDBC driver maven artifact includes a lot of unnecessary dependencies

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.2.0
    • Client - JDBC
    • None

    Description

      The Drill JDBC POM file pulls in so many unused transitive dependencies that it takes quite a while to exclude all the unnecessary ones when using it from within a Java project. This is similar to DRILL-3581 in that you can work around it via exclusions of transitive dependencies, but since it makes interoperability with other open-source projects problematic, this will keep coming up for anyone using the JDBC driver from within any serious java app.

      Considering the pom:
      http://repo1.maven.org/maven2/org/apache/drill/exec/drill-jdbc/1.1.0/drill-jdbc-1.1.0.pom

      ...it seems that most of the unused dependencies are transitive from drill-common and perhaps also drill-java-exec. Here's an example of some dependencies that the JDBC driver shouldn't need (and we excluded in our project):

      parquet-*
      jetty-server
      javassist
      commons-daemon
      hibernate-validator
      xalan
      xercesImpl

      For the record we are now able to use the JDBC driver fine from within our project, but it did take some dependency tree analysis (and a little trial-and-error) to figure out what to exclude. We would like to save future developers that time.

      Attachments

        Issue Links

          Activity

            People

              jnadeau Jacques Nadeau
              jbarefoot Joseph Barefoot
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: