Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-21153

Shaded client jars should always build in relevant phase to avoid confusion

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.0.0-alpha-1, 2.1.0, 2.2.0
    • 3.0.0-alpha-1, 2.2.0, 2.1.1
    • build
    • None
    • Hide
      Client facing artifacts are now built whenever Maven is run through the "package" goal. Previously, the client facing artifacts would create placeholder jars that skipped repackaging HBase and third-party dependencies unless the "release" profile was active.

      Build times may be noticeably longer depending on your build hardware. For example, the Jenkins worker nodes maintained by ASF Infra take ~14% longer to do a full packaging build. An example portability-focused personal laptop took ~25% longer.
      Show
      Client facing artifacts are now built whenever Maven is run through the "package" goal. Previously, the client facing artifacts would create placeholder jars that skipped repackaging HBase and third-party dependencies unless the "release" profile was active. Build times may be noticeably longer depending on your build hardware. For example, the Jenkins worker nodes maintained by ASF Infra take ~14% longer to do a full packaging build. An example portability-focused personal laptop took ~25% longer.

    Description

      edit:

      Now that our assembly directly relies on the shaded clients, failing to build the actual client jars (e.g. because -P release is required to fill in their contents) causes confusing errors for downstream folks about classes not being found when they run simple commands like hbase version.

      We should always fill in the shaded artifacts to make our build easier to understand.

      original report:: When I run the hbase version command it comes back with:

      $ ./bin/hbase version
      Error: Could not find or load main class org.apache.hadoop.hbase.util.GetJavaProperty
      Error: Could not find or load main class org.apache.hadoop.hbase.util.VersionInfo

      The two classes are in hbase-commons.

      The nice shaded refactoring of our bin/hbase – i.e. using shaded jars wherever possible – may have overstretched expecting version to work with shaded client (busbey ?). If so, fix is < one-liner.

      Attachments

        1. ls.txt
          30 kB
          Michael Stack
        2. HBASE-21153.0.patch
          7 kB
          Sean Busbey

        Issue Links

          Activity

            People

              busbey Sean Busbey
              stack Michael Stack
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: