kettle核心jar包:
前置准备:
在D:根目录下存放from.txt和fromto.ktr文件
项目结构如下
pom.xml如下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>www.test.com</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version><dependencies>
<dependency>
<groupId>pentaho-kettle</groupId>
<artifactId>kettle-core</artifactId>
<version>7.1.0.0-12</version>
</dependency>
<dependency>
<groupId>pentaho-kettle</groupId>
<artifactId>kettle-dbdialog</artifactId>
<version>7.1.0.0-12</version>
</dependency><dependency>
<groupId>pentaho-kettle</groupId>
<artifactId>kettle-engine</artifactId>
<version>7.1.0.0-12</version>
</dependency><dependency>
<groupId>pentaho</groupId>
<artifactId>metastore</artifactId>
<version>7.1.0.0-12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-vfs2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
<version>2.2</version>
</dependency><dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency><dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>pentaho-releases</id>
<name>Kettle</name>
<url>https://nexus.pentaho.org/content/groups/omni/</url>
</repository>
<!-- 阿里云maven仓库 -->
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
测试文件如下:
package test;
import java.io.File;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;/**
* @author cgm
* @date 2019年7月5日
*/
public class KettleTest {
// 调用Transformation示例
public static void runTrans(String filename) {
try {
KettleEnvironment.init();
TransMeta transMeta = new TransMeta(filename);
Trans trans = new Trans(transMeta);
trans.execute(null);// 执行转换
trans.waitUntilFinished(); // 等待转换执行结束
if (trans.getErrors() != 0) {
System.out.println("Error");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}public static void main(String[] args) {
String jobname = "d:" + File.separator + "fromto.ktr"; // 选择自己的ktr文件地址
KettleTest.runTrans(jobname);
}}
执行测试
发现将D:/from.txt文件中的内容复制到了D:/to.txt文件中了
附件:代码示例 https://download.youkuaiyun.com/download/cgm625637391/11286718