Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
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
- is related to
-
DRILL-3160 Make JDBC Javadoc documentation available to users
- Resolved
- relates to
-
DRILL-3784 simple Jdbc program fails with NoClassDefFoundError
- Closed
- supercedes
-
DRILL-3502 JDBC driver can cause conflicts
- Resolved
-
DRILL-3617 Apply "shading" to JDBC-all Jar file to avoid version conflicts
- Resolved
-
DRILL-3581 Google Guava version is so old it causes incompatibilities with other libs
- Closed