Development
Core Plugins
Datastores
Documentation
Testing
Building DataNucleus with Maven1

DataNucleus can be easily developed using Maven2. You also require JDK1.5, 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.

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. The most common requirement that it fulfils is to provide stubs for JDBC4 (JDK1.6) that DataNucleus builds against.

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.

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.

test.framework

The "test.framework" project (in SVN under "platform/test.framework/trunk") contains the basic classes used for testing DataNucleus. The first thing you need to do is build this.

To build the "test.framework" using Maven2, you simply type (from the test.framework project)

mvn clean install

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

test.samples

The "test.samples" project (in SVN under "platform/test.samples/trunk") contains a series of basic model samples for use in testing DataNucleus. These are the classes to be persisted, but do not include the information about how they will be persisted (that is specified in the individual test suite). The first thing you need to do is build this.

To build the "test.samples" using Maven2, you simply type (from the test.samples project)

maven clean jar:install

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

DataNucleus : Test Suites

We currently don't support use of Maven2 for running the DataNucleus end to end tests. If you want to help with removing this limitation please check against JIRA for the issue. For details of running the Test Suites using Maven1 please consult the unit tests documentation.