...
Note | ||
---|---|---|
| ||
If you encounter problems with this command, try using the -U flag. This will update the versions of plugins that maven uses. For example:
|
Pentaho
Note | ||
---|---|---|
| ||
Pentaho depends on the following other projects to build
|
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.
...
This diagram captures these relationships:
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. This required moving classes from the pentaho/server/src directory into the various maven modules, and in many cases entailed moving those classes into different modules than what the Ant build originally stated. Two new modules were created (pentaho-api and pentaho-quartz-plugin) to break further circular relationships.
In addition to this, some code had to be refactored to break the circular dependencies, including making new classes. These refactorings are all accompanied by tests in the various modules where the code was changed.
Currently, the structure now looks like this:
Note, this is with redundant relationships removed. For example, pentaho-util depends on pentaho-api and pentaho-messages. Instead of needing to depend explicitly on both of these, pentaho-util can now just depend on pentaho-api, and pentaho-api will bring along pentaho-messages as a dependency.
Not shown is a relationship between pentaho and pentaho-metadata, pentaho-preconfiguredinstall, pentaho-solutions, and pentaho-data. Pentaho depends on pentaho-metadata for a number of classes, but it currently depends on a jar file to get these from. Once pentaho-metadata and pentaho are complete, pentaho should depend on the maven module for pentaho-metadata. Pentaho depends on the other projects for non-Java code files, and they must be built in order to compile this maven project.
...
This project builds a number of different artifacts, including a zip file with a startup script, javadoc, and source zips and a jar.
Code Block |
---|
mvn javadoc:javadoc |
Code Block |
---|
mvn assembly:assembly |
Using the commands above this module compiles the pentaho-meta jar, runs the unit tests, and creates the following zips:
...
All unit tests pass:
Code Block |
---|
mvn test |
as well as within eclipse:
This maven module depends on code from the pentaho source tree. In particular, it is the pentaho-publisher jar that is required to build pentaho-metadata, so you will have to build that before attempting to compile pentaho-metadata.
...
Pentaho-data
Pentaho-solutions
Pentaho-commons
This module will contain multiple modules, much in the same way that the Pentaho project does. Currently, there is a top level pom and the pentaho-reportwizard-core module.
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.
...