Use Apache Maven 3.0 to build this project
The internal com.yahoo.sketches.memory (Memory) package leverages new API methods introduced with JDK8. The Memory package detects whether these methods unique to JDK8 are present, and if not replaces these JDK8 methods with surrogates using JDK7, which will be slightly slower.
In order for this to work, this library must be compiled using jdk8 but with both source and target versions of jdk7 specified in pom.xml. The resultant jar will work on jdk7 and jdk8.
This also means, for the time being, that new JDK8 language capabilities (e.g., lamda functions) cannot be used.
Note that at some point in the near future jdk7 will no longer be supported, so you are advised to bring your execution environments up to jdk8 sooner rather than later.
mvn clean install
mvn -P release-profile clean install
To install you will need GnuPG which is not configured by default on Macs.
brew install gnupg gpg --gen-key
Then, follow instructions to create keys.
To install Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
First, “prepare” a release. Preparing a release ensures you have no checked out file and no SNAPSHOT dependencies. It changes the version in all pom.xml files to the release version. It then runs all the tests. If everything passes, the release version is committed to the SCM system and tagged. The version number is then updated in all the pom.xml files again, this time to the next development version. Finally, the changes are commited again to the SCM repository.
mvn release:prepare
See http://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html for more info.
Next, “perform” a release. Performing a release checks out the tagged release from the SCM system into a new directory, builds it, and then runs the configured deploy goals to publish the release to a maven repository (Maven central). Performing a release automatically enables the release-profile
in maven, causing source and javadoc jars to be automatically created and published.
mvn release:perform
You can add the ‘-DdryRun=true’ option to test the release process without actually generating a release. dryRun is supported on both the prepare and perform steps.
See http://maven.apache.org/maven-release/maven-release-plugin/examples/perform-release.html for more info.
If a release has been prepared but not performed yet, the release can be rolled back. Rolling back a release resets the pom.xml version numbers and tags in the SCM system, effectively nullifying the release.
mvn release:rollback
A release cannot be rolled back if it has already been cleaned up (the release.properties file and other metadata removed).
If a release fails to prepare or crashs, it can leave various files behind. These can be cleaned up with a release clean.
mvn release:clean