Uploaded image for project: 'Kylin'
  1. Kylin
  2. KYLIN-3481

Kylin Jdbc: Shaded dependencies should not be transitive

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • v2.4.0
    • v2.5.0
    • Driver - JDBC
    • None

    Description

      kylin-jdbc use dependencies as shaded, so they should not be transitive.

      As far as I known, SHADE a dependency to avoid dependency conflict, but at v2.4.0, the dependencies in kylin-jdbc are default compile scope and are transitive resolved, that may cause some dependency conflicts.

      We should mark shaded dependencies as optional

       

      There are two solutions about the fixation:

      1. mark dependency as `optional`
      2. or change the dependency scope to provided, and add shade artifactSets with include
      <dependency>
          <groupId>org.apache.httpcomponents</groupId>
          <artifactId>httpclient</artifactId>
          <optional>true</optional> // add this
      </dependency>
      
      // ============= or =============
      <dependency>
          <groupId>org.apache.httpcomponents</groupId>
          <artifactId>httpclient</artifactId>
          <scope>provided</scope>
      </dependency>
      // and
      <artifactSet>
          <excludes>
              <exclude>org.slf4j:jcl-over-slf4j:*</exclude>
          </excludes>
          <includes>
              <include>org.apache.httpcomponents:httpclient:*</include> // force include provided scope
              <include>org.apache.calcite.avatica:avatica-core:*</include> // force include provided scope 
          </includes>
      </artifactSet>

       

       

      Attachments

        Issue Links

          Activity

            People

              hu2008yinxiang Ian Hu
              hu2008yinxiang Ian Hu
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: