Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 The goal of the Maven project is to convert the Pentaho platform to use the Maven2 build process. The current build process uses Apache Ant, and our initial intent was to create a parallel Apache Maven build process that would live alongside the current build.

 StructureStructure

Pentaho is made up of a number of different source trees, a lot of which would have to be mavenized to able to build the Pentaho BI Suite. These source trees are (the :

The links will take you to current location of the maven branches for each):

...

subversion branches that are being worked on. The initial effort is centered around two of the source trees: pentaho and pentaho-metadata.

Building with Maven

In each of the projects, there is a directory named "maven" that contains the maven modules. For example, for the pentaho project you have:

Code Block

 pentaho
	-maven
		-pentaho-api
		-pentaho-core
		-pentaho-data
		.. (other modules)

To compile all of the modules from the top level, execute the following on the command line from the maven directory:

 mvn clean install

To build without tests, you would simply run

mvn clean install -Dmaven.test.skip 

Note
titleDependencies

Not all of the dependencies that pentaho depends on exist in maven repositories. To handle this, there is a install_rescued_jars.sh script in the maven directory for each project  that will install jars from the rescued_jars folder into your local maven repository. You only need to run this script once to put the jars into locations that the maven modules expect.

Pentaho

The pentaho source trees produces a number of different artifacts, as described in the current Ant build.xml and deployment_build.xml. (There is also a dev_build.xml.) With a maven build, the most common structure is to have one maven module per artifact to be generated.

The complication with this particular project involve the circular dependencies between the different jars to be created (as the community has mentioned before).

 This diagram captures these relationships:
Image Added

 Arrows on both ends of a line signify the circular relationship between two modules. (In addition, there are some jars not pictured, such as pentaho-test and pentaho-i18n.) Currently, the mavenization has progressed to the point that these circular dependencies have been removed.

Pentaho-metadata


How to Help

Please reply to the Working Group Thread. A good step for anyone wishing to help out would be to check out the source and try to build from the maven modules. This can help root out problems in the build, and can only make it better.

  Next Steps

 The pentaho-commons project has not been touched as of yet, and would be the next step for anyone wishing to assist in this effort.