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

JDBC driver maven artifact includes a lot of unnecessary dependencies

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.2.0
    • Component/s: Client - JDBC
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: