Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
Description
The build instructions in the online manual do not describe the extra steps we need to take to build 0.98. Add a section on this.
A quick enumeration of the differences:
1. Source assemblies will be missing the hbase-hadoop1-compat module. This should be fixed in the POM somehow. What I do now is untar the src tarball, cp -a the module over, then tar up the result. (It's a hack in a release script.)
2. We must munge POMs for building hadoop1 and hadoop2 variants and then execute two builds pointing Maven at each munged POM. The generate-hadoop-X-poms script requires bash
$ bash dev-support/generate-hadoopX-poms.sh $version $version-hadoop1 $ bash dev-support/generate-hadoopX-poms.sh $version $version-hadoop2
Build Hadoop 1
$ mvn -f pom.xml.hadoop1 clean install -DskipTests -Prelease && \ mvn -f pom.xml.hadoop1 install -DskipTests site assembly:single \ -Prelease && \ mvn -f pom.xml.hadoop1 deploy -DskipTests -Papache-release $ cp hbase-assembly/target/hbase*-bin.tar.gz $release_dir
Build Hadoop 2
$ mvn -f pom.xml.hadoop2 clean install -DskipTests -Prelease && \ mvn -f pom.xml.hadoop2 install -DskipTests site assembly:single \ -Prelease && \ mvn -f pom.xml.hadoop2 deploy -DskipTests -Papache-release $ cp hbase-assembly/target/hbase*-bin.tar.gz $release_dir
3. Current HEAD of 0.98 branch enforces a requirement that the release be built with a JDK no more recent than the compile language level. For 0.98, that is 1.6, therefore the ancient 6u45 JDK. This JDK suffers from JDK-6521495 so the following workaround is required in order to deploy artifacts to Apache's Nexus:
3.a. Download https://www.bouncycastle.org/download/bcprov-jdk15on-152.jar and https://www.bouncycastle.org/download/bcprov-ext-jdk15on-152.jar into $JAVA_HOME/lib/ext.
3.b. Edit $JAVA_HOME/lib/security/java.security and add the BouncyCastle provider as the first provider:
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider