I’ve attached a prototype of an archetype which you can download and install locally, so that you can create a test project from it and see if this is what you had in mind. (Ultimately, the real HBase archetypes will be housed in the Central Maven repository. The steps below are only used to install an archetype into your local Maven repository for testing purposes.)
This archetype is based upon the standard Maven “quickstart” archetype (“maven-archetype-quickstart”). I started with a project generated from that, made a few changes to the project’s POM (chiefly, adding a single dependency upon “hbase-client” – version 1.1.2) and added sample client code (“HelloHBase.java”).
(1) Download and unzip “archetype_prototype.zip”.
(2) Go into the “archetype_prototype” directory, and execute: mvn install
This will install the archetype (which is called “simple-hbase-client-archetype”) into your local Maven repository.
(3) To create a new project based upon the archetype, go to the directory in which you want the project folder and its contents to be created (e.g., “NetBeansProjects”), and execute the following: mvn archetype:generate -DarchetypeCatalog=local
This will interactively ask you to (a) choose from a numbered list which archetype you want to use (in this case, choose the number corresponding to “simple-hbase-client-archetype”), (b) specify groupId (e.g., “org.example”), (c) specify artifactId (e.g., “test-hbase-client-project”), (d) specify version (default is “1.0-SNAPSHOT”), (e) specify package (e.g., “org.example.testpackage”).
Your new project artifacts will be found in a new directory with the same name as the artifactId value that you specified above. Drilling down in the src directory, you’ll find a single file, “HelloHBase.java”, which serves as kind of a quicky tutorial for complete newbies, or which can simply be deleted by those who are ready to write their own client code.
A few points to consider…
VERSIONING: Each archetype needs to be versioned. In the case of the prototype that I produced, I went with the following versioning scheme: since this archetype has only one direct dependency (hbase-client), I assigned to the archetype the same version as the version of hbase-client that is used (i.e. 1.1.2). With this versioning scheme, the presumption is that whenever a new version of hbase-client is deployed to the central Maven repository, a new version of this archetype will need to be deployed as well (with both items having the same version number).
LIFE-CYCLE: After working with archetypes for a few days and experimenting with the various functions that are available, I could foresee the following steps being followed to come out with a new “version” of an archetype.
(1) Use “mvn archetype:generate” to generate a new project from the current version of the archetype.
(2) Make desired modifications (to the Java code, to the POM dependencies, whatever) to the project generated in step 1.
(3) Generate a new version of the archetype by executing “mvn archetype:create-from-project“ against the revised project from step 2.
These three steps just give a broad overview; details on these steps (and other required steps) will need to be fleshed out. In fact, I should be able to come up with pretty detailed documentation on all of this, since I've been taking rather detailed notes as I've been stumbling along...