Pentaho CDE 源码构建

       本文适合开发新手和对Eclipse、ANT、IVY不是很了解的开发人员,如果你对Eclipse相关开发非常了解也许以下方法对你来说都是小菜

      很多好奇心强的朋友想在自己的环境下构建Pentaho CDE 以备以后二次开发使用,但是CDE社区提供的源码里并没有工程文件(也就是说没有办法直接导入到Eclipse中)这里我们只能新建工程,然后将源码文件导入,不过在导入过程中出现了很多问题下面来讨论一下。
Pentaho CDE 和Pentaho其它工程一样都是用ANT + IVY 来管理项目的,为了方便我们需要在自己的Eclipse中安装IvyDE 具体安装方法是 help->Install New Software 在打开的对话框中点add加入以下地址安装即可:http://www.apache.org/dist/ant/ivyde/updatesite

下载CDE源码其目录结构如下()
  cde
  |
  |build-res 目录
  |cde-core  目录
  |cde-pentaho 目录
  |cde-pentaho5 目录
  |cde-pentaho-base 目录
  |build.properties 文件
  |build.xml 文件
  |CDF Designer.iml 文件
分析一下上面的这个结构,包括根工程 cde;子模块工程 cde-core、cde-pentaho、cde-pentaho5 公共代码目录cde-pentaho-base 和构建配置文件目录build-res
所在这里我们要建四个工程 cde、cde-core、cde-pentaho、cde-pentaho5 且后三个工程的文件目录要在cde目录下
下面就来配置我们的CDE项目

一、新建根工程
这个根项目不包含程序代码,只包含构建和配置项目的文件(这里需要说明一下之后建的工程目录都要设置到这个目录下)
将目录build-res、cde-pentaho-base和文件build.properties、build.xml、CDF Designer.iml导入到根工程中

二、新建子模块工程cde-core
新建工程cde-core并将工程的文件保存到cde\cde-core目录下,导入目录cde-core下面的所有文件和目录(不包括cde-core)
配置build path 添加lib库选择 add Library ->IvyDE Managed Dependencies在弹出的对话框中 Main选项卡下选择Ivy File为工程根目录下的ivy.xml在Settings选项卡下面设置Ivy settings path 为工程根目录下的ivysettings.xml 将Property files设置成工程根目录下的build.properties然后Finish等待Ivy下载依赖包就可以了。
三、构建其它子模块工程
重复第二步将新建工程cde-pentaho和cde-pentaho5 然后在这两个工程上加link 资源 cde-pentaho-base 并将 cde-pentaho-base\src和cde-pentaho-base\resource加入到资源目录
四、后续问题处理
其实到上一步CDE构建环境已经搭建完毕但是在我这里cde-pentaho5这个工程一直有一个红叹号,这是怎么回事呢在Problems下找到了答案——Ivy引入了一个olap4j.xxx.ivy.xml这样一个文件显然这不是一个jar包eclipse当然会报错了,查看ivy.xml并没有引用olap4j这个依赖,奇怪这是怎么回事呢问题找不到了,在郁闷了几个小时之后忽然一个念头闪过,会不会是其它包依赖 olap4j呢(了解Ivy或者Maven的朋友都知道依赖是有传递性的)果然最后发现有一个叫cpf-pentaho5的jar包依赖olap4j 但是它的配置是这样的:

 <dependency org="org.olap4j" name="olap4j" rev="1.2.0-SNAPSHOT">
          <artifact name="olap4j" ext="ivy.xml"/>
      </dependency>

 
     
显然是这个配置的问题只需要把 <artifact name="olap4j" ext="ivy.xml"/> 的ext 改为jar (<artifact name="olap4j" ext="jar"/>) 就可以了

如果对文中有疑问请联系我

我的Email:[email protected]

我的博客:http://alenzhai.iteye.com/

猜你喜欢

转载自alenzhai.iteye.com/blog/2077783
cde