Exploring the Pentaho Repository in 5.0
This Step's Objective
This step briefly explains the project code repository, the projects involved in the server platform, and some project anatomy standards. At the end of this step, you should have a basic understanding of the server platform's project scope and structure, but no action is required. Downloading the projects is the subject of the next step.
The Pentaho BI Platform code is stored in a Github repository at or https://github.com/pentaho/pentaho-platform.
The Pentaho projects in Subversion that you need are:
- pentaho-platform-api/ - This project contains the external Application Programming Interface into the Pentaho project.
- pentaho-platform-assembly/ - This project contains the scripts necessary to assemble and package the Pentaho BI Platform
- pentaho-platform-core/ - The heart of the Pentaho engine.
- pentaho-platform-extensions/ - This project contains all the components that can be "plugged in" to the engine.
- pentaho-platform-repository/ - This project contains the code which accesses the solutions repository.
- pentaho-platform-scheduler/ - This proj
- pentaho-user-console/ - The GWT Front End of the BI Platform
- src - Application source code
- test-src - Test source code
- lib - Directory where IVY will deposit "default" (compile-time) dependencies, when it is asked to retrieve them (
- test-lib - Directory where IVY will deposit "test" dependencies, e.g. junit4.jar, when it is asked to retrieve them (
- dev-lib - non-IVY directory where developer can temporarily link jars into the project. Common build will look for jars in dev-lib and include them in the build.
dev-libshould never be committed to SVN!
When developing with the IVY Eclipse plugin, ivyDE, IVY-populated lib directories are ignored. Your Eclipse project will reference jars outside of the project space, in
- build.xml - Ant build file for the Pentaho project. This build file includes the common_build.xml and defines any project specific build functionality.
- common_build.xml - Standardized Ant build file for all Pentaho projects
- ivy.xml - Defines all the dependencies for the Pentaho project.
- dist - Archive files produced by the build are placed in
dist, this would include .jar, .zip, .tar.gz, .war, .ear, etc.
All Other Build Output
Build output has typically been placed in mix of hierarchical and flat directories from the project root. In an effort to tidy up the project workspace,
bin has been reorganized to become the root of the hierarchy of all (non-archive) build output.
- bin/classes - Classes compiled from project application source code are placed here. Compiled classes used to be placed directly in
bin, keep that in mind if you run into strange behavior such as incorrect jar content from your custom build scripts.
- bin/test - Root directory for any resources that may be needed to run unit tests, such as compiled test code and instrumented application source code (for code coverage tools)
- bin/reports - Root directory for all kinds of reports the build might generate about the project, e.g. JUnit test reports, Cobertura or Clover coverage reports, FindBugs static analysis reports.
- bin/javadoc - Javadoc html is placed here for browsing (javadoc may also be archived as a zip or targz in which case the archive would be placed in
eclipse-bin - Eclipse will place compiled java classes here as opposed to bin which is reserved for the Ant-based build. The two are kept separate so Eclipse will not compete with Ant.