1、 Pentaho 技术白皮书中文版(一) -用 Eclipse 构建和调试 Pentaho这篇文档的目的是教会开发人员如何开始进行 Pentaho 的开发。这篇文档解释了如何在 Eclipse 中设置一个开发环境,包括如何连接到 Pentaho Subversion repository,检出 Pentaho 项目,使用一个 1stand-alone1 Java 应用和 Eclipse JBoss IDE 来构建调试它们。这篇文档也解释了 Pentaho repository 结构和对于开发 Pentaho 来说,许多很重要的 build targets。目标读者是软件开发人员。我们假设读者已
2、经很熟悉 Eclipse 平台和 Java 开发。如果目的是将平台配置为一个 J2EE 应用,我们假设读者了解 J2EE 和应用服务器。我们此处就是使用 JBoss 应用服务器进行演示。虽然不是很重要,但如果读者有使用Apache Ant 的经验也会很有用处。如果你仔细阅读了这个指南中的说明,但仍没有解决你的问题,请到论坛寻找答案:http:/forums.pentaho.org/.01. 设置你的环境以下是开始研究 Pentaho,你需要使用的工具列表。推荐你现在就下载所有必需的包,这样你就可不间断的进行试用。1. 一个 Java SDK:Pentaho BI Platform 在 Java
3、 SDK 1.4 上构建和测试。注意你需要完整的 SDK,而不仅仅是 runtime (JRE)。2. Ant:基于 Java 的构建工具。3. Eclipse:平台 IDE。4. Subclipse:一个 Eclipse 插件,其在 Eclipse IDE 上添加了 Subversion 集成。5. JBoss IDE for Eclipse。为开始设置:1. 下载和安装你的 Java SDK。2. 下载和安装 Ant。3. 下载和安装 Eclipse。4. 下载和安装 Subclipse。5. 下载和安装 JBoss IDE for Eclipse。以后章节是关于 Pentaho 团队使用
4、的这些工具的版本说明,以及使环境适合于Pentaho 平台 codeline 开发的技巧。每个工具在其各自的下载中有详细的安装指令,这里我们不详细介绍。Java SDKPentaho BI Platform 在 Java SDK 1.4 上构建和测试。注意你需要完整的 SDK,而不仅仅是 runtime (JRE)。在后面几步中,你会看到为了使 Ant 构建脚本正确运行,你必须指定 Java 编译器可执行程序(javac)。这个可执行程序位于你安装的 Java SDK 的/bin 目录下,因此记住你将 SDK 安装到了哪里。AntAnt 是一个基于 Java 的构建工具,我们将之用于构建平台,
5、以及支持用 Eclipse 进行Pentaho 进行开发中的活动。目前用于构建 Pentaho 的可下载的二进制的版本是 Ant 1.6.5。建议使用 Ant 工具从命令行构建一些 Pentaho Ant targets(在某些环境下是必要的)。Eclipse IDE 中自带了 Ant 的一个版本。这个版本被 IDE 用于构建功能,为了作为Eclipse 的插件可能也进行了一些修改。为确定 Eclipse IDE 中的 ant 版本,从Eclipse 顶部的 Window 菜单浏览至 Preferences. | Ant | Runtime,在插件的路径中检查其版本。Eclipse IDE只是
6、最近在设置你的 Pentaho 开发环境时,才需要有一个 Eclipse,但与 Pentaho 的代码没啥关系。如果你想在 JBoss 应用服务器中运行和调试代码,你需要 JBoss IDE (参考下面 ),那里有一些兼容性问题(IDE 的最新版本在 Eclipse 的最新版本上好像有些问题)。 Pentaho 团队使用的是以下版本,这些配置是没问题的:1. 从 JBoss 网站下载带有最新 JBoss IDE 插件的 Eclipse 带有 JBoss IDE version 2.0.0beta2 的 Eclipse IDE 版本 3.2.1. 或2. 从 Eclipse 网站下载 Eclip
7、se 3.2.1 M20060921-0945;然后从 JBoss 下载和安装 JBoss IDE 插件版本 2.0.0 beta2。SubclipseSubclipse 是 Eclipse 的一个插件,在 Eclipse 环境上激活 Subversion 功能。Subversion 是大多数 Pentaho 项目使用的源代码控制库。Subclipse 利用了 Eclipse Update Manager,其允许你用一个 URL 进行注册,在 Eclipse IDE 上自动获取和安装插件。和我们的配置兼容的 Subclipse 版本是 Subclipse 1.2.x。你可在 Tigris.or
8、g 网站找到详细的安装指令,或按照以下简短的指令:在 Eclipse 中,选择菜单条 Help | Software Updates | Find and Install.1. 在向导的第一步中,选中 “Search for new features to install“,点击 “next“ 按钮。2. 在下一步中,点击按钮 “New Remote Site.“。3. 在弹出式窗口中,输入你选择的站点名,输入以下url:http:/subclipse.tigris.org/update 1 .2.x,点击 “OK“ 按钮。4. 在下一步中,你应该看到一个可从中选择的功能列表,选择适合于你的
9、Eclipse 版本的 “Subclipse plugin“。5. 允许插件安装完成。使用 Subclipse 的详细命令,请到 Eclipse Help 菜单,选择Help Contents,然后在内容表中浏览 Subclipse 树。JBoss IDE如果你想在 JBoss 应用服务器中调试,那么你需要安装 Eclipse 的 JBoss IDE 插件。如果你下载了打包的 EclipseJBoss IDE 包,这样你就不需要安装 JBoss IDE 插件 你已经有了。Eclipse 的 JBoss IDE 插件是一个工具,允许你一步步的调试在一个JBoss 应用服务器中作为一个 web 应
10、用的一部分运行的 Java 类。JBoss IDE 插件通常通过 Eclipse Update Manager 获取。然而,在这篇文档写作时,JBoss IDE 版本 2.0.0beta2 并没有安装命令,文档或到 Update Manager 的链接。Thats what we get for using a development build。这并不是一个问题,它很简单,我们会尽力描述。从此处获取 JBoss 插件:1. 下载插件,JBossIDE-2.0.0.Beta2-ALL.zip (不是 pluginEclipse 包!) 。2. 将包解压进你的 eclipse 安装目录 不是 z
11、ip 文件中 /eclipse 开头的那个目录结构。3. 启动重启 Eclipse。一旦你成功安装了 JBoss IDE 插件,继续到下一节。在 “Debugging in JBoss Application Server“ 这个练习中,我们会介绍如何配置插件用于调试。02. 探索 Pentaho RepositoryThis page last changed on Nov 30, 2006 by bhagan.Pentaho BI Platform 代码位于 Subversion repository 中的svn:/source.pentaho.org/。如果你没有使用 Subversio
12、n 的经验,不要怕 这里有本在线电子书:http :/svnbook. red-.Subversion 中的 Pentaho 项目是:l pentaho 主要的 Pentaho 源代码树l pentaho-cubedesigner 用于连接到关系数据源的,向导驱动的图形用户界面的源代码,定义了 analytical dimensions,确定了用于分析的 measures 或 “facts“。l pentaho-data 默认 sample 数据库l pentaho-designstudio - 用于构建和测试 Action Sequence documents 的图形eclipse 环境的源
13、代码。l pentaho-designstudioIDE 本质上是带有 build 文件的 eclipse,其将安装pentaho action-sequence-plugin 和 splash screen。l pentaho-preconfiguredinstall - 预配置的 Jboss 应用服务器的源代码。l pentaho-reportdesigner - 创建 JFreeReports 的 standalone designer 的源代码。l pentaho-reportwizard - 创建 JFreeReports 的 standalone 向导的源代码。l pentaho-
14、solutions - sample solutions。l pentaho-standalone - 单独运行平台的 Java 应用的代码,没有一个 J2EE 应用服务器。我们一直致力于保持简单健全的项目结构和开发团队。下面会描述这篇文档中将要探讨的项目的描述:l pentahol penta ho-datal pentaho-solutionsl pentaho-preconfiguredinstalll pentaho-standalone在这篇文档里,我们不会讨论 Pentaho 客户端工具:l pentaho-cubedesignerl pentaho-designstudiol p
15、entaho-designstudioIDEl pentaho-reportdesignerl pentaho-reportwizardpentaho 项目pentaho 项目有源代码,资源和 Pentaho BI 平台的项目设置。在这个项目里,你可浏览平台代码和体系结构。目录/文件 描述/pentaho 源代码树的根目录。/cobertura 包含库,用于确定单元测试应该覆盖代码中的多少百分比。/scripts 包含用于构建 Preconfigured Install 时使用的 startup 脚本。/server 服务器代码的 Source tree。/third-party 包含 lib
16、 目录,包含编译和构建所需的所有第三方库。.classpath 设置项目 classpath 的 Eclipse 文件。.project 描述项目的 Eclipse 文件。build.xml 用于 Pentaho 项目的 Ant build 文件。default.properties 用于构建 Pentaho 项目的属性,通过在相同的目录中,创建一个 override.properties 文件,并在其中增加你想覆盖的那些属性的方法来覆盖这个文件中的属性。deployment_build. properties deployment_build .xml 所用的属性文件。deployment_
17、build.xml Build 文件,其包含用于构建 appserver specific deliverables的 targets。它被 build.xml 使用,作为 j2ee deployments 的一部分。excludejars.generic 文本文件,列出了那些不应该被包含在 .war 文件中的 jars,其在 build 文件中用于 tomcat-war target。excludejars.jboss 文本文件,列出了那些不应该被包含在 .war 文件中的 jars,其在 build 文件中 jboss-war target。pentaho-data 项目Pentaho B
18、I Platform 带有一套默认数据库 (使用 Hypersonic SQL) 来容纳几个功能组件和子系统所必需的 repositories。为了使得平台的这些 parts 能运行,你需要这些repositories。这个数据存在于模块pentaho-data。Pentaho-data 也包含数据库的启动和关闭脚本。目录/文件 描述/pentaho-data 数据库树的根目录。/hibernate 包含用于 Hypersonic SQL 的平台 repository 脚本。/quartz 包含用于 Hypersonic SQL 的 Quartz scheduler 脚本。/sampledat
19、a 包含用于 Hypersonic SQL 的 sample 数据脚本。/shark 包含用于 Hypersonic SQL 的 Shark 工作流脚本。sta rt_hypersonic. batWindows 平台的启动批处理文件,用于启动 Windows 上的数据库。start-hypersonic.sh *nix 平台上的启动批处理文件,用于启动 *nix 上的数据库。stop_hypersonic.bat Windows 平台上的关闭批处理文件,用于关闭 Windows 上的数据库。stop-hypersonic.sh *nix 平台上的关闭批处理文件,用于关闭 *nix 上的数据库
20、。重要: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项
21、目的 third-party/lib 目录中获取这个文件,因为那个版本比较可靠。pentaho-preconfiguredinstall 项目preconfigured-install 项目包含一个完整的 JBoss 应用服务器,配置并调优来运行Pentaho BI 平台代码。JBoss 应用服务器目录结构的详细信息请参考 JBoss Wiki。pentaho-solutions 项目如果你的目标是将平台设置为一个 web 应用,或仅仅作为你自己的 solutions 的起点,你需要从 Subversion 获取最新的 samples。设置 samples 是一个相对小的练习,提供了一个很好的
22、方式来测试你的配置中的各种组件。samples 位于名为 1pentaho-solutions1 的项目中。pentaho-solutions 项目包含一套samples,其演示了平台的几种组件功能,还包括一套 clean 配置文件。为运行 samples,你也需要下载默认的 Hypersonic 数据库。获取数据库的详细命令请参考上一节。目录/文件 描述/pentaho-solutionssolution tree 的根目录。/admin administrative samples 的根目录。/samples sample solution 的根目录。/system 系统目录,其包含所有平
23、台和组件配置信息。/test test solution 的根目录。重要:将 samples 下载到一个目录,其是你的应用服务器的根目录的兄弟目录。不用进行任何配置上的修改,web 应用会找到“pentaho-solutions“ 目录,只要其如上所述作为 app server 的兄弟。pentaho-standalone 项目pentaho-standalone 文件夹有一个简单的 solution,平台库和 dependencies,以及不使用 J2EE 应用服务器,单独运行平台的 Java 应用的代码。目录/文件 描述/resource resource 目录,包含我们实例的 solut
24、ion 文件。这些文件很类似于包含在我们的 demo 中的那些。在我们的 solution 中,有两个 action sequences:Hello World 和 Simple Report。如果你浏览resource/solution 目录,你会看到用于 action sequences 的文件。/src src 目录包含源代码,用于以一个 standalone Java 应用来执行平台。/.classpath设置项目 classpath 的 Eclipse 文件。/.project 描述项目的 Eclipse 文件。/build.xml Pentaho 项目的 Ant build 文件。
25、03. 创建 Repository 连接This page last changed on Mar 01, 2007 by gmoran.Eclipse 是 Pentaho 团队选中的 IDE,一直使用 Subclipse 作为 Subversion 插件。插件提供了 “SVN Repository Exploring Perspective“,你可从中创建一个连接。为使用 Subclipse 插件创建一个连接:1. 在 SVN Repository Exploring 透视图中,右击,选择 New,选择 Repository Location,就会出现 Add New Repository
26、Location 对话框。2. 在 Url 复选框中,输入 svn:/source.pentaho.org/svnroot.3. 点击 Finish。现在你就有了一个到 Subversion repository 的连接。展开,会看到项目。通常对于 Subversion repositories,每个项目有 3 个子目录:branches,tags 和 trunk。project/trunk 目录有最新的代码,很可能是你想要检出的。“pentaho“ 项目结构的完整解释请参考 02. Exploring Pentaho Repository Structure。04. 检出项目This pag
27、e last changed on Feb 26, 2007 by gmoran.Eclipse 有几种不同类型的项目, Pentaho 使用简单的项目和 Java 项目。简单项目有最基础的 Eclipse 项目配置和能力,和文件浏览没啥差别。Java 项目包含需要编译和配置文件的源代码,例如.classpath 文件, 其将设置源码树中的 lib 子目录下的库文件。pentaho-data,pentaho-solutions 和 pentaho-preconfiguredinstall 项目都是Eclipse 简单项目。pentaho 项目和 pentaho-standalone 项目都是
28、Eclipse Java 项目。你从 Subversion 获取模块的推荐结构是以兄弟目录下载它们 这个结构使得平台能自动找到你的 solutions 目录,也使得跟踪不同的模块更容易。在检出 pentaho 项目之后,你立即会注意到( 如果你激活了 “Build Automatically“ 设置)那个项目正在被编译。编译过程中可能会出现警告信息,但是没有编译错误。耐心点,这个任务会持续一分钟,依赖于你的计算机的速度。pentaho-standalone 项目不会自动编译,因为在项目能运行前,必须先完成一些设置步骤。为完成这篇文档中的例子,你需要检出以下项目:l pentahol penta
29、 ho-datal pentaho-solutionsl pentaho-preconfiguredinstalll pentaho-standalone获取不同的 Codelines此处,你可能想获取平台的最新代码,那就是构建好,用于我们下一次发布的codeline,版本 1.6。或,如果你正研究最新版本中的一个问题,你可能需要版本1.2.x。下两节解释了如何获取代码的 1.2 分支中的一个版本,而不是最新版本,Subversion 术语中,这称之为 “ trunk“。为获取源码,你可简单的从命令行中向 Subversion 发布一个命令,或通过你喜欢的Subversion 客户端应用。我们一直使用 Subclipse。获取最新代码在 SVN Repository 视图中,展开你的 repository 连接,之前,我们已经创建了 svn :/source. pentaho.org/svnroot.1. 展开一个项目。在这个实例中,我们使用 pentaho。2. 右击 trunk。3. 从右键菜单中,选择 Checkout. Checkout from SVN wizard loads。