Under the dev-support
folder, you will find hbase_eclipse_formatter.xml
.
We encourage you to have this formatter in place in eclipse when editing HBase code. To load it into eclipse:
Go to Eclipse->Preferences...
In Preferences, Go to Java->Code Style->Formatter
Import... hbase_eclipse_formatter.xml
Click Apply
Still in Preferences, Go to Java->Editor->Save Actions
Check the following:
Perform the selected actions on save
Format source code
Format edited lines
Click Apply
In addition to the automatic formatting, make sure you follow the style guidelines explained in Section 15.11.5, “Common Patch Feedback”
Also, no @author tags - that's a rule. Quality Javadoc comments are appreciated. And include the Apache license.
Download and install the Subversive plugin.
Set up an SVN Repository target from Section 15.1.1, “SVN”, then check out the code.
If you cloned the project via git, download and install the Git plugin (EGit). Attach to your local git repo (via the Git Repositories window) and you'll be able to see file revision history, generate patches, etc.
The easiest way is to use the m2eclipse plugin for Eclipse. Eclipse Indigo or newer has m2eclipse built-in, or it can be found here:http://www.eclipse.org/m2e/. M2Eclipse provides Maven integration for Eclipse - it even lets you use the direct Maven commands from within Eclipse to compile and test your project.
To import the project, you merely need to go to File->Import...Maven->Existing Maven Projects and then point Eclipse at the HBase root directory; m2eclipse will automatically find all the hbase modules for you.
If you install m2eclipse and import HBase in your workspace, you will have to fix your eclipse Build Path.
Remove target
folder, add target/generated-jamon
and target/generated-sources/java
folders. You may also remove from your Build Path
the exclusions on the src/main/resources
and src/test/resources
to avoid error message in the console 'Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (default) on project hbase:
'An Ant BuildException has occured: Replace: source file .../target/classes/hbase-default.xml doesn't exist'. This will also
reduce the eclipse build cycles and make your life easier when developing.
For those not inclined to use m2eclipse, you can generate the Eclipse files from the command line. First, run (you should only have to do this once):
mvn clean install -DskipTests
and then close Eclipse and execute...
mvn eclipse:eclipse
... from your local HBase project directory in your workspace to generate some new .project
and .classpath
files. Then reopen Eclipse, or refresh your eclipse project (F5), and import
the .project file in the HBase directory to a workspace.
The M2_REPO
classpath variable needs to be set up for the project. This needs to be set to
your local Maven repository, which is usually ~/.m2/repository
Description Resource Path Location Type The project cannot be built until build path errors are resolved hbase Unknown Java Problem Unbound classpath variable: 'M2_REPO/asm/asm/3.1/asm-3.1.jar' in project 'hbase' hbase Build path Build Path Problem Unbound classpath variable: 'M2_REPO/com/github/stephenc/high-scale-lib/high-scale-lib/1.1.1/high-scale-lib-1.1.1.jar' in project 'hbase' hbase Build path Build Path Problem Unbound classpath variable: 'M2_REPO/com/google/guava/guava/r09/guava-r09.jar' in project 'hbase' hbase Build path Build Path Problem Unbound classpath variable: 'M2_REPO/com/google/protobuf/protobuf-java/2.3.0/protobuf-java-2.3.0.jar' in project 'hbase' hbase Build path Build Path Problem Unbound classpath variable:
Eclipse will currently complain about Bytes.java
. It is not possible to turn these errors off.
Description Resource Path Location Type Access restriction: The method arrayBaseOffset(Class) from the type Unsafe is not accessible due to restriction on required library /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar Bytes.java /hbase/src/main/java/org/apache/hadoop/hbase/util line 1061 Java Problem Access restriction: The method arrayIndexScale(Class) from the type Unsafe is not accessible due to restriction on required library /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar Bytes.java /hbase/src/main/java/org/apache/hadoop/hbase/util line 1064 Java Problem Access restriction: The method getLong(Object, long) from the type Unsafe is not accessible due to restriction on required library /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar Bytes.java /hbase/src/main/java/org/apache/hadoop/hbase/util line 1111 Java Problem
For additional information on setting up Eclipse for HBase development on Windows, see Michael Morello's blog on the topic.