[
https://issues.apache.org/jira/browse/DRILL-3589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14649874#comment-14649874
]
Jason Altekruse edited comment on DRILL-3589 at 7/31/15 9:41 PM:
-----------------------------------------------------------------
The reason for a lot of these unnecessary dependencies is a project structure
issue that we still need to resolve. We do not have a clear separation of the
components of Drill that are shared between the client and server. Ideally
these should be part of a small module shared between the two components, but
today such a separation does not exist. I am sure we have a bug filed for this,
but I cannot find it right now. While the process we use to generate the
jdbc-all jar should automatically remove a lot of these unnecessary
dependencies, it would be best solved with a more conscious effort to organize
the code into these separate components.
was (Author: jaltekruse):
The reason for a lot of these unnecessary dependencies is a project structure
issue that we still need to resolve. We do not have a clear separation of the
components of Drill that are shared between the client and server. Ideally
these should be part of a small module shared between the two components, but
today such a separation does not exist. I am sure we have a bug filed for this,
but I cannot find it right now. While the process we use to generate the
jdbc-all jar should automatically remove a lot of these unnecessary
dependencies, but it would be best solved with a more conscious effort to
organize the code into these separate components.
> JDBC driver maven artifact includes a lot of unnecessary dependencies
> ---------------------------------------------------------------------
>
> Key: DRILL-3589
> URL: https://issues.apache.org/jira/browse/DRILL-3589
> Project: Apache Drill
> Issue Type: Improvement
> Components: Client - JDBC
> Reporter: Joseph Barefoot
> Assignee: Daniel Barclay (Drill)
> Priority: Minor
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)