Development
Documentation
Testing
Building DataNucleus with Maven2

DataNucleus can be easily developed using Maven2. You also require JDK1.6 (Enhancer/JPA plugins need this - JDK1.5 for the rest), an SVN client (to download DataNucleus) and an editor.

DataNucleus is split into several Maven2 projects and you need these building in a particular order due to dependencies.

local.repository

The "local.repository" project (in SVN under "platform/local.repository/trunk") provides all jars required by DataNucleus in a Maven1 style repository layout. It is referenced by all DataNucleus projects and so you need this to be present. You don't need to build anything here. Note that if using Maven2 you can refer to this repository specifying the repository layout as legacy .

core

The DataNucleus "core" (in SVN under "platform/core/trunk") project is the root of all DataNucleus projects and is the primary requirement for development. You then simply type (from this project)

mvn clean install

This builds the jar under "target" and installs it into your Maven2 repository.

thirdparty

The "thirdparty" project (in SVN under "platform/thirdparty/trunk") contains stubs for third party libraries that may be needed when building DataNucleus. This provides for things like JDBC4 (JDK1.6), and Oracle Coherence allowing building of the datanucleus-cache and datanucleus-rdbms plugins.

To build the "thirdparty" using Maven2, you simply type (from this project)

mvn clean install

This builds the jar under "target" and installs it into your Maven2 repository.

store.rdbms

The "store.rdbms" project (in SVN under "platform/store.rdbms/trunk") provides persistence to RDBMS datastores, and builds on top of "core". It requires "thirdparty" to be built.

To build the "store.rdbms" using Maven2, you simply type (from this project)

mvn clean install

This builds the jar under "target" and installs it into your Maven2 repository.

store.db4o

The "store.db4o" project (in SVN under "platform/store.db4o/trunk") provides persistence to DB4O datastores, and builds on top of "core".

To build the "store.db4o" using Maven2, you simply type (from this project)

mvn clean install

This builds the jar under "target" and installs it into your Maven2 repository.

enhancer

When building "enhancer" (in SVN under "platform/enhancer/trunk") using Maven2, you need "core" to be built. You then simply type (from this project)

mvn clean install

This builds the jar under "target" and installs it into your Maven2 repository.

jpa

The "jpa" project (in SVN under "platform/jpa/trunk") provides support for JPA (in AccessPlatform 1.1), and builds on top of "core". Note that in AccessPlatform 1.0 this plugin is called "java5".

To build the "jpa" using Maven2, you simply type (from this project)

mvn clean install

This builds the jar under "target" and installs it into your Maven2 repository.

Other projects

When building other DataNucleus projects (in SVN under "platform") you follow the same instructions as shown above. That is, download the project, and type (from that project)

mvn clean install

This builds the plugin jar under "target" and installs it into your Maven2 repository.

Building all plugins

If you wanted to build all plugins for AccessPlatform 1.0 you can do this via a shell script stored in SVN at datanucleus/platform/build_accessplatform_1_0.sh . Please note that to use this you must have checked out the "platform" projects in the same layout as SVN.

Similarly to build all plugins for AccessPlatform 1.1 you can do this via a shell script stored in SVN at datanucleus/platform/build_accessplatform_1_1.sh .