Kettle dependency management

简介:

pentaho的项目使用了ant和ivy解决项目依赖,所以必须编译源码需要ivy工具.直接使用ivy编译pentaho的bi server项目,一直没有编译成功.
使用ivy编译kettle的源代码却是非常容易的事情.

该篇文章翻译并参考了Will Gorman在pentaho的wiki上添加的Kettle dependency management,文章标题没作修改.
编写此文,是为了记录编译kettle源码的方法和过程.

以下是对原文的一个简单翻译. 将kettle作为一个产品发行是一个很有趣的事情.有很多来自于pentaho其他项目(其中有一些有依赖于kettle)的jar包被导入到kettle.这些jar包必须在发行的时候构建并且加入到kettle中.如果一个核心的库被更新了,我们必须将其导入到kettle中(如果有必要).bi服务器,pentaho报表以及pentaho元数据编辑器都将kettle作为一个服务/引擎资源而被构建的.自从我们已经将这些jar导入到我们的源码仓库,这些项目必须使用ivy明确列出kettle以及他的依赖.当kettle的依赖变化的时候,我们必须审查libext文件是否需要更新.

pentaho创建了一系列的脚本来自动化的安装ivy,解决jar(或者是artifacts),构建并发行artifacts.kettle已经升级使用subfloor(简单的意味着build.xml继承自subfloor的构建脚本).subfloor使用ivy从pentaho仓库()或者ibiblio maven2仓库来获取跟新jar.ibiblio仓库用于大多数第三方的jar文件(如apache-commons).pentaho仓库用于在线的pentaho项目或者一些比在ibiblio的三方库.为了解决kettle的依赖,我们不得不在ivy.xml里创建一个清单.这个文件明确地列出每一个没有传递依赖的jar文件.这意味着libext文件的映射在ivy.xml中是一对一的. 关于Ivy Apache Ivy™是一个流行的致力于灵活性和简单性的依赖管理工具.更多的参考:enterprise features, what people say about it, 以及 how it can improve your build system

在kettle中使用ivyIDE 首先,从svn上下载kettle的源代码:

svn://source.pentaho.org/svnkettleroot/Kettle/trunk
如果你想在Eclipse上使用 ivyde plugin .
请参考相关文章安装该插件.

如果你不想使用ivyde,你可以简单快速并且容易的开始并编译代码.
1.执行ant resolve,这个命令将会创建一个叫做resolved-libs的文件夹.
2.使用下面命令更新classpath 
a.手动的添加这些jar文件到你的ide的classpath
b.执行ant create-dot-classpath,将会修改你的.classpath文件(注意刷新项目以使改变生效)
注意:kettle项目中的构建脚本会自动安装ivy插件.

构建Kettle 你可以下载kettle源代码然后立即执行ant distrib命令
或者你可以在ide中导入下载的kettle工程,然后按照你的操作系统(默认的是Windows 32-bit)版本修改依赖的swt.jar文件.

ivy中未完成的 pentaho-database-这是一个依赖kettle-db的常用项目,但又被kettle-ui使用.这样会导致循环依赖,将来可能会将其引入到kettle项目或是从该项目中去掉对kettle的依赖. swt-swt文件目前没有包括在ivy.xml文件中 library configurations-每一个kettle库(kettle-db,kettle-core等等)应该在ivy.xml中有他自己的依赖.这些库应该继承一些特定的依赖,而取代继承整个kettle依赖. checked-in plugins-当前引入的插件如;DummyJob, DummyPlugin, S3CsvInput, ShapeFileReader3,versioncheck应该都移到ivy的plugin配置中.

目录
相关文章
|
1月前
|
Java Maven
maven:the pom for XXX is missing, no dependency information available
maven:the pom for XXX is missing, no dependency information available
31 0
|
10月前
|
存储 缓存 安全
译|Dependency Management
译|Dependency Management
42 0
|
Android开发
eclipse下载支持compiler compliance level 1.8的插件
eclipse下载支持compiler compliance level 1.8的插件
90 0
|
XML Java Maven
Spring集成Ignite Log4j2日志
Spring集成Ignite Log4j2日志
|
前端开发 Java BI
现有的maven工程,集成birt(及birt的参数配置详解)
现有的maven工程,集成birt(及birt的参数配置详解)从官网下载新的birt-runtime下载地址为:http://download.eclipse.org/birt/downloads/解压zip格式文件后如图: 配置目录结构将上图中WebViewerExample中的文件,按如下图进...
1568 0
|
SQL Java 分布式数据库
Drill storage plugin实现原理分析
# Drill Storage Plugin介绍 Drill是一个交互式SQL查询引擎,官方默认支持的数据源有hive、hbase、kafka、kudu、mongo、opentsdb、jdbc等,其中jdbc storage plugin可以覆盖所有支持jdbc协议的数据源,如:mysql、oracle等关系型数据库。所有数据源的接入都是通过drill的storage plugin实
2328 0
|
Java 开发工具 Maven
Maven之no dependency information available解决
问题警告信息: [WARNING] The POM for xx:jar:1.1.0 is missing, no dependency information available 使用maven的兄弟,有没经常遇到这段警告的,本人做了一个sdk(xmonitor-agent-1.5.2.Final.jar),用在具体项目后,直到在服务器上jenkins调用mvn install -DskipTests才采到此坑,sdk依赖的第三方jar总是依赖不上,总是打出来的包缺少依赖jar。
26113 0
|
关系型数据库 数据库 MySQL
|
流计算 Python 自然语言处理