00 下载文件
选择自己喜欢的版本的分支。
这是master 的分支路径: https://github.com/pentaho/pentaho-kettle/tree/master
我选择了9.1.0.5,页面下方README.md中有详细的步骤。
下载zip文件,或者使用git
01 前期准备
Maven, version 3+
Java JDK 1.8
This settings.xml in your /.m2 directory
特别说明:
maven使用aliyun的镜像的时候会报有一个包找不到。直接失败了,就从setting.xml暂时中去掉了aliyun的镜像
还有不要使用 IntellJ 里面内置的maven 去构建
02 编译
$ mvn clean install
02 01报错1
我是用的是jdk12,编译报错,尝试下面的处理办法后,还是依旧,就是用jdk1.8 编译,1.8 也是在PDI Core 这边有个报错,错误是测试未通过,后来使用 $ mvn clean install -DskipTests 进行编译
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /E:/devtools/pentaho-kettle-9.1.0.5/core/src/main/java/org/pentaho/di/core/Result.java:[32,33] 程序包j
avax.xml.bind.annotation不存在
[ERROR] /E:/devtools/pentaho-kettle-9.1.0.5/core/src/main/java/org/pentaho/di/core/Result.java:[65,2] 找不到符
号
符号: 类 XmlRootElement
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Pentaho Data Integration 9. 1.0.0-SNAPSHOT:
[INFO]
[INFO] Pentaho Data Integration ........................... SUCCESS [ 5.505 s]
[INFO] PDI Engine Extensions .............................. SUCCESS [ 2.280 s]
[INFO] PDI Engine API ..................................... SUCCESS [ 9.857 s]
[INFO] PDI Core ........................................... FAILURE [ 8.837 s]
查资料显示:JAXB在11的时候从jdk中移除了
java.xml.bind (JAXB) - REMOVED
Java 8 - OK
Java 9 - DEPRECATED
Java 10 - DEPRECATED
Java 11 - REMOVED
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2</version>
<scope>compile</scope>
</dependency>
03 测试
1单元测试
$ mvn test
2集成测试
$ mvn verify -DrunITs
04 跳过测试的编译
$ mvn clean install -DskipTests