Platform Version 1.0.0.RC2
December 12, 2005
Copyright © 2005 Pentaho Corporation. Redistribution permitted. All trademarks are the property of their respective owners.
For the latest information, please visit our web site at www.pentaho.org
Pentaho BI 平台可以自由下载:
l 使用一个web 浏览器,浏览到这个网页:http://www.sourceforge.net/projects/pentaho
l 点击 Files。
l 选择满足你的需要的包。如果你不确定,以下章节会帮助你确定哪个下载适合你。
l 选择你想从哪里下载。如果你比较狂热,可从一些外国站点下载,例如 Russia 或China。如果你住在 Russia 或 China,可从 North Carolina 的一些站点下载。你可能没时间到处玩,但是至少你的下载可环球旅行。
预配置安装包是一个完整的服务器安装,设计来允许你评估Pentaho BI 平台的一些特征。它包含一个预配置的应用程序服务器/web服务器,预配置的预先生成的应用程序数据库, sample 数据和全功能的samples。也有一个包含了JRE (仅限于Windows) 的预配置安装版本。
如果你选择了预配置安装包,你需要下载《快速启动指南》,也可从http://www.sourceforge.net/projects/pentaho下载,它将指导你进行简单的安装,配置和运行平台samples。
J2EE Deployment Distribution 是一个包,允许你为某种应用程序服务器构造多种不同的web应用程序archives和/或企业应用程序。
到目前为止,我们有构造以下archives (通过Ant targets)的脚本:
l Tomcat 5.0 .war 文件
l JBoss 4.0.2 .war 文件
l JBoss 4.0.2 .ear 文件
可在SourceForge 上找到这个包,其名为 pentaho_j2ee_deployments-<version>.zip。有关如何从SourceForge 下载我们的包,请参考下载Pentaho BI 平台一节。
如果你想将平台配置到以上列出的应用程序服务器中的一个,就下载这个包。这也是一个好的起点,如果你想将之配置到一个没有列出的应用程序服务器时。你需要的所有Pentaho 文件均存在于这个包中,你所需要做的就是编写你自己的Ant target,并添加你的环境必需的配置文件。
我们有一个预配置的JBoss 应用程序服务器,其中已经为你设置和配置好了每件事物(参考之前的章节)。如果想尽快省力的配置运行,我们推荐使用预配置安装包。如果想在自己的环境中设置平台,可选择使用J2EE Deployment Distribution。
注意:我们主要的应用程序服务器测试环境是 JBoss 4.0.2。Pentaho community 和开发组欢迎各种反馈–不管是面临的问题,还是仅仅想让我们知道你已经成功配置了环境–关于在其它应用程序服务器上的配置。请使用http://www.pentaho.org/discussion/installation.html 上的论坛共享你的经历。
除了 pentaho_j2ee_deployments-<version>.zip,你需要下载以下的包:
l pentaho_data-<version>.zip:用于samples 和测试实例的 Hypersonic 数据库。
l pentaho_solutions-<version>.zip:Samples 和测试实例包括所有必须的资源。
你也将需要确保你已经有:
l 这个下载需要已经安装了一个 Java SDK 或 JRE。Pentaho BI 平台已在 Java SDK 1.4上构建和测试过,可用于很多平台 http://java.sun.com/j2ee/1.4/download.html#sdk。
l 确保环境变量 JAVA_HOME 指向 JDK 被安装的目录。
l 这个下载也需要安装了 Apache Ant,开放源码的基于 Java 的构建工具。你将需要 Ant 的1.6.2 版本或更高。你可从 http://ant.apache.org/ 下载Ant。
l 确保 Ant 的bin 目录在你的系统 path 上可用。
这一节描述外围内容的(数据和sample solutions)手动配置,这是必需的,如果你想使用一个配置设置 sample solutions,而不是使用我们提供的预配置安装的话。
我们建议你在将平台配置到你的应用程序服务器之前,调整 solutions 和数据库。一些应用程序服务器需要在配置期间,数据库是 alive 的,否则配置可能失败。
l 解压 pentaho_data-<version>.zip。
l 在资源浏览树的根目录,你应能见到一个 startup 和 shutdown 脚本。
l 为启动数据库服务器,运行 start-hypersonic (.bat 用于Windows,.sh 用于 *nix) 脚本。
l 为停止数据库服务器,运行stop-hypersonic (.bat 用于 Windows,.sh 用于 *nix) 脚本。
l 这很重要!将 pentaho_solutions-<version>.zip 解压到一个目录,它是你的应用程序服务器的根目录的一个同级目录。
l 只要 pentaho-solutions 目录如上所述被配置为应用程序服务器的同级目录,web 应用程序不需要做任何配置上的改变就可以找到 pentaho-solutions。
l 如果应用程序不能找到sample solutions,你可以输入一个配置参数指向他们。
n 抽取 web.xml 文件(从 .war)
n 查找值为 solution-path 的<param-name> 元素。
n 直接在<param-name>元素后,输入一个<param-value> 元素,将它的值设置为pentaho-solutions 目录的绝对路径。
n 实例:<param-value>d:/pentaho/pentaho-solutions</param-value>
n 重新构建 .war 文件。
为配置 Pentaho BI 平台,首先,你必须有一个 J2EE 兼容的 archive 文件,它包含平台的所有文件和资源。我们提供了 pentaho_j2ee_deployments-<version>.zip 帮助构建一些最常使用的 archives。
如果你正使用 JBoss 或 Tomcat 作为你的应用程序服务器,这个包将为你构建 archive。如果你正使用一个不同的应用程序服务器,你将需要编写你自己的Ant 任务来构建你需要的archive,并添加特定于你的应用程序服务器的配置文件。如果你愿意的话,我们很高兴将你的应用程序服务器的 Ant 任务放进我们的包中。参与 Pentaho 的细节信息请参考http://www.pentaho.org/contributions。
pentaho_j2ee_deployments-<version>.zip 将构建两种不同的 archives - .war 文件或.ear 文件。.ear 文件有在选定的应用程序服务器上成功运行 Pentaho 平台 demo 和 samples 所必需的所有文件。.war 文件仅仅包含 Pentaho web 应用程序,在这种情况下,在你配置 Pentaho .war 文件后,还有更多要完成的工作。
1. 解压 pentaho_j2ee_deployments-<version>.zip 文件进一个工作目录。对于我们这里的实例,我们将使用 d:/work。
2. 确定你想构建哪个archive。你的选择有:
l 一个Tomcat 5.0 .war 文件
l 一个JBoss 4.0.2 .war 文件
l 一个JBoss 4.0.2 .ear 文件
3. 打开一个终端窗口(*nix),或是一个命令行窗口(Windows)。
4. 切换目录到你解压配置包的工作目录。
5. 执行适合于你选中的 archive 的 Ant 命令。命令是:ant <ant_target>
这里<ant_target> 是以下值:
1. build-tomcat5.0-war
2. build-jboss4.0.2-war
3. build-jboss4.0.2-ear
因此,例如如果你想为 Windows上的 Tomcat 构建一个 .war 文件,命令应如下: D:/work> ant build-tomcat5.0-war
等待构建脚本执行完。可在 /dist/<appserver> 子目录下找到生成的.ear 或 .war 文件,它在你的工作目录被创建。在我们的实例中,<appserver> 是 tomcat 目录。
既然你已经为你的应用程序服务器构建了合适的 archive,你可以配置平台。配置过程特定于你使用的应用程序服务器,我们假设你已经对之很熟悉了。
重要! 确保 check the application server specific tips later in this document for additional steps (if any) are needed for your deployment.
记住! 如果你在配置平台时遇到了任何的问题,将你的问题发布到我们的论坛: http://www.pentaho.org/discussion/installation.html,很可能别人已经找到了一个解决方法,或可以帮助解决。也可发布你的成功案例,以及你怎么解决的!
如果你将平台配置为一个.war 文件,你可能会漏掉另一个主要的组件–pentahostyles. War。Pentaho-styles.war 提供了平台 demo 和samples 必需的所有styles 和 images。
不必担心这个,如果你 built 和 deployed 一个.ear 文件–.ear 文件包括了平台需要的所有额外 web 资源。
当没有配置 pentaho-styles.war 应用程序时,samples 也可以运行,但你将注意到找不到一些图标和images,samples 的展示可能有点不正常。
这是因为,为了简单的和可维护的 style 定制,我们已经将平台的 content styling 迁移进单独的 styles web 应用程序。
为纠正samples 的展示,仅将 pentaho-styles.war 配置进和和平台相同的应用程序服务器 (这个.war 打包在 pentaho_styles_war-<version>.zip中)。
那应该完成这个功能!现在启动你的应用程序服务器(在你已经查看了如下的提示后)。 samples URL 如下:http://localhost:8080/pentaho/Navigate。主机名依赖于你的应用程序服务器是安装于本地还是远程,当必需时进行相应的调整。
如果你正配置 Pentaho BI 平台到一个 vanilla JBoss 4.0.2,你应按照如下提示。我们建议你从pentaho_j2ee_deployments-<version>.zip开始构建你的.war 文件或.ear 文件。
那些属于JBoss 的 pentaho.war 文件的提示仅仅应用于平台的 .war archive。你可为自己减少一些麻烦,如果你为 Jboss 构建 pentaho.ear,这将为你合并一些步骤,否则,是手动进行。
如果你正配置到你自己的 JBoss 4.0.2 安装(这不应用于我们的预配置安装包),你需要在hibernate.deployer 配置中添加或替换以下库。
1. 停止JBoss 应用程序服务器。
2. 在你在 Jboss 应用程序服务器中修改或添加任何库之前,我们强烈建议你备份你的应用程序服务器。hibernate.deployer 配置遵循 JBoss 4.0.2 应用程序服务器的标准,而 Pentaho web 应用程序需要不同库的不同版本,你已经有的任何现有配置可能和我们在这些指令中制定的库版本不兼容。
3. 必须在 hibernate.deployer 配置中添加(或替换)以下 jars。你可从 pentaho_j2ee_deployments-<version>.zip 包内的 pentaho-third-party 目录获得这些 jars。
l antlr-2.7.5H3.jar
l asm.jar
l asm-attrs.jar
l hibernate3.jar
l jboss-hibernate.jar
l cglib-2.1_2jboss.jar
l commons-collections-3.1.jar
l hibernate-annotations.jar
为添加这些文件,将这些 jars 复制进<jboss_home>/server/default/deploy/jbosshibernate. deployer 目录。如果你没有使用默认的服务器,那么将文件复制进你的服务器的deploy/jboss-hibernate.deployer 目录。
4. 必须从 hibernate.deployer 配置中删除以下 jars(如果它们存在)。
l hibernate-metadata.jar
l cglib-2.1.jar
这些文件,如果它们存在于你的配置中,将位于<jboss_home>/server/default/deploy/jboss-hibernate.deployer 目录中。如果你没有使用默认服务器,那么它们将位于你的服务器的 deploy/jboss-hibernate.deployer 目录。
5. 重启 JBoss 应用程序服务器。
为适当呈现平台用户接口,Pentaho 平台依赖于 dom4j 库的1.6.1 版本。默认的,JBoss 4.0.2 自带dom4j 1.5.2。
为升级 dom4j 库:
1. 从 http://dom4j.org/download.html 下载dom4j 1.6.1,或使用 jboss_pentaho_war-<latest version>.zip 包的根目录中的 dom4j_1.6.1.jar。
2. 停止服务器。
3. 从 <jboss_home>/lib 目录删除 dom4j.jar 文件。
4. 将 dom4j_1.6.1.jar 重命名为 dom4j.jar。
5. 将新 dom4j.jar 文件复制进 <jboss_home>/lib 目录。
6. 重启服务器。
依赖于你从哪里接收到 .war 文件,它可能被命名为 jboss-pentaho.war,pentaho.war 或你已选择的一些其他名字。当你配置 .war 文件时,你必须确保 Jboss 的 pentaho.war 运转正常。如果你还没有如此操作,将你的.war 文件重命名为 pentaho.war。
Pentaho web 应用程序中数据源的命名依赖于 JNDI,因此为了成功运行平台和 samples,你需要定义 Jboss 下的这些数据源。JBoss 4.0.2 中的标准是使用一个带有 –ds.xml 命名约定的 xml 文件。我们已经在 jboss_pentaho_war-<latest version>.zip 包的根目录处包含了以下数据源定义。
l PentahoHibernate-ds.xml
l quartz-ds.xml
l sampledata-ds.xml
l shark-ds.xml
为在 Jboss 上注册这些数据源,按照以下步骤:
7. 停止服务器。
8. 添加如上列出的 *-ds.xml 文件进 <jboss_home>/server/default/deploy 目录。如果你没有使用默认服务器,那么将这些文件复制进你的服务器的 deploy 目录。
9. 重启服务器。
JBoss 4.0.2 应用程序服务器没有自带 JBoss Portal,因此任何 Pentaho portal 特征或 samples 均不工作。随后将提供设置带有一个预存在的 Jboss Portal 的 Pentaho 平台的指令。
如果你正将 Pentaho BI 平台配置进 Tomcat 5..x,你需要使用以下提示。我们建议你从 pentaho_j2ee_deployments-<version>.zip 开始构建你的 .war 文件。
为了访问平台和 samples 的默认数据库,你必须在 Tomcat 5.0 的 endorsed library 目录中添加 hsqldb.jar (Hypersonic 数据库 drivers)。
你可从 pentaho-third-party 目录找到 hsqldb.jar。这个目录是 pentaho_j2ee_deployments-<version>.zip 的部分,可从http://www.sourceforge.net/projects/pentaho 下载。
1. 停止 Tomcat 服务器。
2. 将 hsqldb.jar 从 pentaho-third-party 目录复制进 <tomcat-home>/common/endorsed 目录,这里 <tomcat-home> 是你的 Tomcat 应用程序服务器的根目录。
3. 重启服务器。
Pentaho web 应用程序数据源的命名依赖于 JNDI,因此为了成功运行平台和 samples,你需要为 Tomcat 定义这些数据源,Tomcat 5.0 的标准是使用 server.xml 文件里的 xml 条目。
在以下代码框中,我们已经为你包含了必需的数据源定义:
<Resource name="jdbc/SampleData" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/SampleData">
<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>5</value></parameter>
<parameter><name>maxWait</name><value>10000</value></parameter>
<parameter><name>username</name><value>pentaho_user</value></parameter>
<parameter><name>password</name><value>password</value></parameter>
<parameter><name>driverClassName</name><value>org.hsqldb.jdbcDriver</value></parameter>
<parameter><name>url</name><value>jdbc:hsqldb:hsql://localhost/sampledata</value></parameter>
</ResourceParams>
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Hibernate">
<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>5</value></parameter>
<parameter><name>maxWait</name><value>10000</value></parameter>
<parameter><name>username</name><value>hibuser</value></parameter>
<parameter><name>password</name><value>password</value></parameter>
<parameter><name>driverClassName</name><value>org.hsqldb.jdbcDriver</value></parameter>
<parameter><name>url</name><value>jdbc:hsqldb:hsql://localhost/hibernate</value></parameter>
</ResourceParams>
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Quartz">
<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>5</value></parameter>
<parameter><name>maxWait</name><value>10000</value></parameter>
<parameter><name>username</name><value>pentaho_user</value></parameter>
<parameter><name>password</name><value>password</value></parameter>
<parameter><name>driverClassName</name><value>org.hsqldb.jdbcDriver</value></parameter>
<parameter><name>url</name><value>jdbc:hsqldb:hsql://localhost/quartz</value></parameter>
</ResourceParams>
<Resource name="jdbc/Shark" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Shark">
<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>5</value></parameter>
<parameter><name>maxWait</name><value>10000</value></parameter>
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value></value></parameter>
<parameter><name>driverClassName</name><value>org.hsqldb.jdbcDriver</value></parameter>
<parameter><name>url</name><value>jdbc:hsqldb:hsql://localhost/shark</value></parameter>
</ResourceParams>
为在Tomcat 上注册这些数据源,按照以下步骤:
10. 停止服务器。
11. 打开 server.xml 文件,位于 <tomcat-home>/conf 目录。
12. 小心的复制如上列出的 xml,在 server.xml 文件的<DefaultContext></DefaultContext>节点之间黏贴它们。如果你没有<DefaultContext></DefaultContext>节点,创建它们,并在其间黏贴新的xml。
13. 保存和关闭 server.xml 文件。
14. 重启服务器。
Tomcat 5.0 没有自带 JSR168 兼容的 portlet 容器,因此任何 Pentaho portal 特征或samples 均不起作用。我们希望很快可以解决在 Tomcat 中设置 portals 的问题,我们一定发布信息 ASAP。
默认的,平台 web 应用程序被配置使用 8080 端口。如果你已经有另一个服务器使用了8080 端口,希望应用程序使用一个不同的端口的话,按照以下步骤进行操作。
抽取 web.xml 文件(从.war,位于pentaho.war/WEB-INF/web.xml) ** 如果你使用预配置安装包,web.xml 位于pentahodemo/jboss/server/default/deploy/pentaho.war/WEB-INF/web.xml。
添加或编辑 base-url 上下文参数:
<context-param>
<param-name>base-url</param-name>
<param-value>http://server-name:port/pentaho</param-value>
</context-param>
将 server-name 改成用于访问服务器的 name 或 IP 地址。如果你仅仅在相同的机器上运行服务器和 web 浏览器,你可将之设置成 localhost。将 port 改成你想使用的端口号。
设置服务器使用的端口本身是一个应用程序服务器配置任务。每个应用程序服务器需要使用的端口是唯一的。因为我们的参考实现运行于Jboss,我们在这里包含了改变 Jboss 的端口的指令。对于其他的应用程序服务器,如何配置端口请参考你的服务器的文档。
对于 JBoss 4.0.2:
编辑 <jboss-home>/server/default/deploy/jbossweb-tomcat55.sar/server.xml。** 如果你使用预配置安装包,server.xml 位于pentahodemo/jboss/server/default/deploy/jbossweb-tomcat55.sar/server.xml。
在文件顶部的几行中,你可以看到:
<!-- A HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" address="${jboss.bind.address}"
改变文本 port=”8080”,指向你想使用的端口号。如果你愿意的话,你也可以改变其他连接器的端口。
Pentaho 源代码包是一个 Pentaho 平台 Java 源代码和子系统配置文件的 archive。需要和源代码(到目前为止)一起分发的配置文件是 Hibernate 配置文件(hibernate.cfg.xml) 和 Quartz scheduler 配置文件(quartz.properties)。可在 SourceForge 上找到这个包,名为 pentaho_src-<version>.zip。有关如何从 SourceForge 下载我们的包的指令请参考下载 Pentaho BI 平台一节。
源代码包可以附加进二进制库,用于debugging 和 tracing,或为了你的特定需要而修改和重编译。对于这个源代码包,我们不提供构建脚本或构建文档。如果你对源代码的构建脚本感兴趣,你应该从 SourceForge.net 上我们的 CVS 库下载源代码。从 CVS 获取源代码的更多信息,请参考这个文档的从源代码构建一节。
Java Archive (JAR) distribution 是一个 Pentaho 平台二进制类和子系统配置文件的 archive。可在 SourceForge 上找到这个包,名为 pentaho_jar-<version>.zip。有关如何从 SourceForge 下载我们的包的指令请参考下载 Pentaho BI 平台一节。
平台 Java Archive (JAR) 包是有用的,如果你想在一个 standalone 应用程序中利用 platform API 编码,或想在你自己的 web 应用程序中包括这些类。
solutions 包是可被用作你自己的 solutions 的起点的 sample 和 test solution 文档的一个 archive,和/或可被放进你的平台的自定义配置中。可在 SourceForge 上找到这个包,名为 pentaho_solutions-<version>.zip。有关如何从 SourceForge 下载我们的包的指令请参考下载 Pentaho BI 平台一节。
有关如何构建 Pentaho solutions 和理解 solution document schemas 的更多信息,请参考Solution Building 指南,它也可以从 SourceForge.net 上我们项目的站点上下载。
data 包是几个 Hypersonic 数据库的 archive,它包含了运行我们的预配置安装包和 solutions 的所有必需的应用程序和 sample 数据。可在 SourceForge 上找到这个包,名为pentaho_data-<version>.zip。有关如何从 SourceForge 下载我们的包的指令请参考下载 Pentaho BI 平台一节。
下载 data 包,如果你想从源码构建平台,或是想运行 sample solutions。
styles web application 包含格式化平台接口的展示的 images 和 cascading style sheets。我们将展示分割成它自己的 web 应用程序,为了平台的简单和可维护的定制,这样当你升级平台自身时,它不会被覆盖。
如果你想配置平台samples,在从源码构建后,或是需要一个地方启动你自己的定制,那么你应该获取这个包。有关如何从 SourceForge 下载我们的包的指令请参考下载 Pentaho BI 平台一节。
Javadoc 文档包是 Pentaho 平台 Java 类 的Javadoc。可在 SourceForge 上找到这个包,名为 pentaho-javadoc-<version>.zip。有关如何从 SourceForge 下载我们的包的指令请参考下载 Pentaho BI 平台一节。
从头开始构建 Pentaho BI 平台的人,不同的人有不同的原因。一些人想能够从头构建平台以更好的掌握体系结构,如果愿意的话,到处看看。一些想利用他们喜欢的 IDE 在代码内 debug 或 trace。另一些为了他们特定的目的,需要将定制的增加或改变合并进代码。
不管哪种原因,出发点都是从源代码为平台构建类。
这一节首先覆盖了那个任务。在构建后,在 Pentaho 构建文件中有很多 distribution Ant 任务:如前所述的构建进一个.jar 文件,一个.war 文件,为了国际化提取 .properties 文件等等。使用这些 distributions 以适合你的目的的方式传送你的构建类。
我们已经组件化了topics,因此你应该能够 pick 和选择适合你的目的的步骤。你应该知道如何构建一个Java 应用程序,因此你知道何时将获得你期望的最终结果,不需再按照文档的步骤继续进行。
如果(after painstakingly following instructions in this guide) 你仍然没有获得你最终的目标文件,寻求帮助吧!帮助仅是一个论坛,位于http://www.pentaho.org/index.php?option=com_simpleboard&Itemid=275&func=showcat&catid=14
Pentaho BI 平台代码位于 SourceForge.net 上的 Pentaho 项目下。我们使用 SourceForge 的 CVS 库服务进行源代码的版本控制。
如果你还没有使用过 SourceForge.net 或 CVS,不用害怕–在 SourceForge.net 上有一个很好的 primer:http://sourceforge.net/docman/display_doc.php?docid=14033&group_id=1。
SourceForge.net Pentaho 项目的说明:
这个项目的 SourceForge.net CVS 库可通过带有以下指令集的 anonymous (pserver) CVS 检出。你想检出的模块必须被指定为 modulename。当被提示为 anonymous 输入一个密码时,简单的点击回车键。为确定被这个项目创建的模块的名字,你可以检查它们的CVS 库,通过提供的基于 web 的 CVS 库阅读器 (http://cvs.sourceforge.net/viewcvs.py/pentaho)。
cvs -d:pserver:[email protected]:/cvsroot/pentaho login
cvs -z3 -d:pserver:[email protected]:/cvsroot/pentaho co –P modulename
Pentaho 模块有:
l pentaho – 主要的 Pentaho 源代码树
l pentaho-solutions – sample solutions
l pentaho-data – 默认 sample 数据库
下一节将帮助你理解这些模块,指导你从 CVS 获取他们。
Pentaho 源代码位于名为 pentaho 的模块。pentaho 模块包含平台的完整源码,以及构建类所必需的第三方库和构建文件。
你可以下载代码到你机器上的任何位置,我们建议你创建一个空目录。为获取源代码,发布以下命令到CVS,从一个命令行或通过你最喜欢的 CVS client 应用程序。
cvs -z3 -d:pserver:[email protected]:/cvsroot/pentaho co –P pentaho
如果提示你输入一个密码,仅仅点击回车键即可。
Eclipse 是 Pentaho 开发组选择的 IDE。从 Eclipse 的 CVS Repository Exploring 透视图中,库 URL 以下图所描述的方式分解。
Pentaho 源代码的 CVS 库 URL
一旦下载了代码,你应该看到类似于如下的一个结构:
/pentaho
/server
/third-party
.classpath
.project
build.xml
default.properties
excludejars.jboss
pentaho 项目结构的完整解释请参考探索 Pentaho 项目结构一节。
Pentaho BI 平台带有一套默认数据库(使用 Hypersonic SQL) 支持几个特征组件和子系统必需的库。为使平台的这些部分运行其俩,你需要这些库。这个数据存在于 pentaho-data 模块下。Pentaho-data 也包括数据库的 startup 和 shutdown 脚本。
你可以下载代码到你机器上的任何位置,我们建议你创建一个空目录。为获取文件,发布以下命令到CVS,从一个命令行或通过你最喜欢的 CVS client 应用程序。
cvs -z3 -d:pserver:[email protected]:/cvsroot/pentaho co –P pentaho-data
如果提示你输入一个密码,仅仅点击回车键即可。一旦下载了代码,你将看到以下结构:
/pentaho-data
/demo-data
/hibernate
/quartz
/sampledata
/shark
start_hypersonic.bat
start_hypersonic.sh
stop_hypersonic.bat
stop_hypersonic.sh
重要! 将 pentaho-data 模块组织成一个standalone 组件,它担当一个数据库服务器。项目中提供了启动和关闭 Hypersonic 数据库的脚本。脚本依赖于 Hypersonic jdbc 类,在 pentaho-data 目录的 /lib 目录下可用。因此为了使这些脚本正常运行,你需要将 Hypersonic driver jar 放在脚本期望的地方:
1. 在 pentaho-data 目录下创建一个名为 lib 的目录。
2. 将 Hypersonic jdbc driver .jar 文件(hsqldb.jar) 复制进 lib 目录。我们建议你从 pentaho 项目的 third-party/lib 目录获取这个文件,因为那个可以保证是正确的版本。为获得 pentaho 项目,请参考获得源码一节。
pentaho-data 项目结构的完整解释请参考探索 Pentaho 项目结构一节。
如果你的目标是将平台设置为一个 web 应用程序,或仅仅为你自己的 solutions 构造一个起点,你将需要从SourceForge.net 上的 CVS 获得最新的 samples。设置 samples 是一个相对琐碎的任务,提供了一个很好的方式测试你的配置中的不同组件。
samples 位于名为 pentaho-solutions 的模块。pentaho-solutions 模块包含一套 samples,它演示了平台的几个组件特征,以及一套 clean 配置文件。
为运行 samples,你也需要下载默认的 Hypersonic 数据库。获取数据库的指令请参考前一节。
重要!下载 samples 到一个目录,它是你的应用程序服务器的根目录的同级目录。 只要pentaho-solutions 目录被配置为如上描述的应用程序服务器的同级目录,不需要做配置上的任何改变,web 应用程序就可以发现它。
为获取文件,发布以下命令到CVS,从一个命令行或通过你最喜欢的 CVS client 应用程序。
cvs -z3 -d:pserver:[email protected]:/cvsroot/pentaho co –P pentaho-solutions
如果提示你输入一个密码,仅仅点击回车键即可。一旦下载了代码,你将看到以下结构:
/pentaho-solutions
/samples
/system
/test
pentaho-solutions 项目结构的完整解释请参考探索 Pentaho 项目结构一节。
我们尽了很大的努力,保持项目结构尽量简单,为了我们自身,也为了我们的社团。以下你可以找到项目结构中每个子目录的一个描述,这可帮你澄清你的源下载的内容。
目录/文件 |
描述 |
/pentaho |
源代码树的根目录。 |
/server |
服务器代码的源代码树。 |
/third-party |
在 third-party 下是 lib 目录,有所有编译和构建所必需的第三方库。 |
.classpath |
设置项目classpath 的 Eclipse 文件。 |
.project |
描述项目的 Eclipse 文件。 |
build.xml |
Pentaho 项目的 Ant 构建文件。 |
default.properties |
Pentaho 项目的默认构建属性。覆盖这个文件里的属性,通过在相同的目录下创建一个构建 .properties 文件,并添加你想覆盖的那些属性。 |
excludejars.jboss |
文本文件列出了对于构建文件中的 jboss-war target 来说,不应该包含在 .war 文件中的那些 jars。 |
目录/文件 |
描述 |
/pentaho-data |
数据库树的根目录。 |
/demo-data |
demo 数据库树的根目录。 |
/hibernate |
保存 Hypersonic SQL 的平台库脚本。 |
/quartz |
保存 Hypersonic SQL 的 Quartz 调度器脚本 |
/sampledata |
保存 Hypersonic SQL 的 sample data 脚本 |
/shark |
保存 Hypersonic SQL 的 Shark 工作流脚本 |
start_hypersonic.bat |
Windows 平台的启动批处理文件,用于启动 Windows 上的数据库。 |
Start-hypersonic.sh |
*nix 平台的启动批处理文件,用于启动 *nix 上的数据库。 |
stop_hypersonic.bat |
Windows 平台的关闭批处理文件,用于关闭Windows 上的数据库。 |
stop-hypersonic.sh |
*nix 平台的关闭批处理文件,用于 *nix 上的数据库。 |
目录/文件 |
描述 |
/pentaho-solutions |
solution 树的根目录。 |
/samples |
sample solution 的根目录。 |
/system |
系统目录,包含所有的平台和组件配置信息。 |
/test |
test solution 的根目录。 |
你需要安装以下工具:
构建需要安装了一个 Java SDK。Pentaho BI 平台在 Java SDK 1.4 上构建和测试,可用于很多平台:http://java.sun.com/j2se/corejava/index.jsp。
确保环境变量 JAVA_HOME 指向了 JDK 被安装的目录。
构建需要安装 Apache Ant。Pentaho BI 平台在 Apache Ant 1.6.2 上构建和测试,可在http://ant.apache.org/ 下载。
在你运行构建过程前,你应该确保 Ant bin 目录在 path 环境变量上。
为构建平台:
打开一个命令行提示符。
浏览至 Pentaho 源代码树的根目录/
输入ant compile。
这将所有的 Pentaho 类构建进一个名为 build/Pentaho-classes 的目录。几个子系统的默认配置文件将也被复制进这个目录。
可以选择几个不同的 build 选项,依赖于你的最终目标。默认的 build 是 compile,如你所见,这仅将我们的源代码编译成类。也有一些其它有效的 build targets:
如果你想在你自己的 standalone 应用程序中包含这个平台,你可能想将类构建进一个.jar文件–在 Ant 中,这个 target 是 pentaho-jar。这个 target 仅将被编译的类和配置文件打包进jar 文件中。你将在一个最新创建的 dist 目录中找到最终结果,位于 pentaho项目的根目录下。
如果你想构建整个的 web 应用程序,Ant target 是 general-war。这个任务提供了 web 应用程序的所有必需文件– 包括一个普通的 web.xml 文件。如果你选择的应用程序服务器除了web.xml,需要任何私有配置文件,你也需要提供那些。
注意构建进这个 war 文件的第三方库可能和你的应用程序服务器正使用的一些默认库发生冲突。你可能需要解压这个 war,删除任何 offending 的库,以应用程序服务器为先,重新re-war 文件,然后重新配置进应用程序服务器。
如果你遇到了这些警告信息(或即使你你第一次成功配置了 war 文件!),我们很想听到这些信息! 请在我们的论坛 (http://www.pentaho.org/index.php?option=com_simpleboard&Itemid=275&func=showcat&catid=14) 发布一条消息,让我们知道你怎么处理的。
这个 target 是专门用于配置进 JBoss Application Server 4.0.2的。因此如果你正使用 JBoss (它可能也兼容于其它的版本,不过我们还没有测试过),使用这个 target 构建你的 war 文件,并尽量避免版本的差别引来的问题,我们也曾遇到过判断 Jboss 将为我们装载哪些类的问题。
这个 war target 和 general-war target 间最大的不同就是 Jboss 中的库。如果你想知道 general-war 中的哪些 jars 不在 jboss-war,检出你的 Pentaho 项目的根目录的文档 excludejars.jboss。那份文档列出了从 JBoss 配置中排除的所有 jars。
此时你应该有一个 .war 文件,它是打包为 web 应用程序的 Pentaho BI 平台。你可以下载作为一个已编译版本的(请参考 Web Archive Distribution 一节)的.war 文件,或你可从头开始构建一个(请参考 Building from Source 一节)。
一旦你有必要的软件和 web 应用程序,按照 Web Archive Distribution – Installation 一节的指令配置应用程序。
为给 Pentaho BI 平台设置 sample solutions,你需要同时有 samples 和samples 使用的默认数据库。你可从以下两个位置获取这些:
1. 你可从 Sourceforge.net 获得打包的文件 – 请参考 Data Distribution 和 Solutions Distribution 一节。
2. 你可从 Sourceforge.net 上的 Pentaho 的 CVS 库下载文件 – 请参考 Getting Default Databases 和 Getting Samples。
当然你需要有某类被配置的 Pentaho BI 平台。参考之前的一节 Deploying the Platform,如果你仍然还没有设置平台的话。
一旦你有了所有这些,请参考安装 – 配置 Sample Solutions 一节设置samples。
Pentaho 开发组使用 Eclipse 平台作为这个项目的开发所选择的 IDE。我们的项目使用一个广泛接受的,一般的结构,这将使得通过任何配置环境设置和调试代码变得相对容易,但是如果你碰巧正使用 Eclipse,就很方便,因为有默认的项目配置文件和这些设置命令。
请注意我们的客户端应用程序构建为 Eclipse 插件,因此在这种情况下,使用 Eclipse 细读客户端代码才有意义。
为使用 Eclipse 开始跟踪 Pentaho 源代码,确认你有以下工具:
Eclipse 平台 IDE。这里的开发组正使用 3.0 版本的不同子版本。你可从 http://www.eclipse.org/downloads/index.php 下载 Eclipse IDE。
安装一个 Java SDK。Pentaho BI 平台在 Java SDK 1.4 上构建和测试过,多个平台的版本均可从此处下载 http://java.sun.com/j2se/corejava/index.jsp。
Pentaho 源代码 – 注意这些指令仅用于从 CVS 库 http://sourceforge.net/projects/pentaho 获得的源代码。有关从 CVS 获得源代码的命令,轻参考之前一节 Getting the Source。
一个 pentaho-solutions 目录,那里有你的 solution documents 和系统配置目录树。如果你仍然没有构建你自己的 solutions,你可CVS 上可用的 samples 开始,位于 pentaho-solutions模块。有关从 CVS 获得 samples 的命令,轻参考之前一节 Getting the Samples。
Pentaho 数据库–目前仅仅可用的数据库是默认的 Hypersonic 数据库,你可从 CVS ‘pentaho-data’ 模块获得。有关从 CVS 获得数据库的命令,轻参考之前一节 Getting the Default Databases。
目前我们将平台的所有源代码均放在一个 project root – pentaho 下。这个 root 相应于你下载的源代码树的根目录。(convenient, eh?)
当你从 CVS 获取 Pentaho 源代码时,你应该已经下载了一个 Eclipse 用于设置你的项目的,默认的 .project 和 .classpath 文件。.project 文件仅仅指定了这是一个 Java 项目,.classpath 文件将设置源代码树的子目录 /lib 中的库。注意:.classpath 文件是一个Eclipse 3.0 版本的文件,因此如果你正使用 Eclipse 的一个高级版本,这个文件可能已经修改了(被 Eclipse),但是仍然有效。
你从 CVS 拉取的模块的推荐结构是作为同级目录下载它们 – 这个结构将使你的平台自动查找你的solutions 目录,同时使得保留不同模块的 track 更容易一些。你的机器上的结构应该类似如下的结构:
/pentaho-data
/demo-data
/hibernate
/quartz
/sampledata
/shark
start_hypersonic.bat
start_hypersonic.sh
stop_hypersonic.bat
stop_hypersonic.sh
/pentaho
/server
/third-party
.classpath
.project
build.xml
default.properties
excludejars.jboss
/pentaho-solutions
/samples
/system
/test
注意这将要求你有 3 个 Eclipse 项目 – pentaho,pentaho-data 和 pentaho-solutions。这是合时的。同时注意到对于 pentaho-data 或 pentaho-solutions 项目没有一个默认的 .project 或.classpath 文件。那是因为这些目录应该被列表为 vanilla 项目(在Eclipse 中选择 Simple Project),因此不需要在其上进行编译或代码验证。‘pentaho’ 项目的.project 文件应该被配置成将‘pentaho’设置为一个Java项目。
如果你将 Eclipse 设置成 ‘Build Automatically’,那么Pentaho 类应该已经被无错构建了。否则,选择手动编译 pentaho 项目。
如果你确实遇到了错误,在继续进行之前采取必要的步骤解决它们。当首次设置项目时出现编译错误的典型原因是模块结构不符合建议的层次,或在 /lib 目录中不存在第三方库或一个.classpath 文件。
Pentaho 项目中跟踪代码的最简单的方法是使用一个 Junit 测试用例。 (如果你不熟悉 Junit,更多信息请查看http://www.junit.org/index.htm) 已经构建了很多 JUnit 测试用例,来测试平台的单独组件特征和子系统。可在源代码树中找到,位于./pentaho/server/src/org/pentaho/test。
Eclipse 有运行 JUnit 测试的内置能力。仅仅选择你想运行的测试用例(打开源文件),从 Eclipse 菜单中,选择 Run..New JUnit Test..。按照 Eclipse 对话框提供的指令进行操作,这很直接。
使用你的 web 应用程序服务器和 Eclipse 调试 Pentaho web 应用程序一点都不难。然而,相比而言,它需要更多关于 Eclipse 的使用,你喜欢的应用程序服务器和用于调试的 Eclipse 插件的知识。
通过一个应用程序服务器调试的最简单和快速的方法是使用从 Sourceforge.net 下载的预配置安装包,以及用于调试的 Jboss 的 Eclipse 插件。用于设置一个调试 session 的获取 JBoss 插件和指令如下:
1. 在 Eclipse (我们使用版本3.0)中,从菜单条选择 Help | Software Updates | Find and Install…
2. 在向导的第一步中,选择 Search for new features to install,点击 next 按钮。
3. 在下一步,点击按钮 New Remote Site…。
4. 在弹出式窗口中,将站点命名为你选定的名字,并输入如下url:http://jboss.sourceforge.net/jbosside/updates。点击 OK 按钮。
5. 在下一步中你应该看到要选择的特征的一个列表。选择适合于你的 Eclipse 的版本的“JBoss IDE” 条目。
6. 允许插件完成安装,然后按照指令设置一个 debug session;详细信息可在http://www.devx.com/opensource/Article/20242 找到。