为了编译能通过,maven需要加入仓库地址以及一些必须要的包的依赖情况:

  1. pentaho中央仓库:

在properties里面配置版本号:

<kettle.version>6.0.0.0-353</kettle.version>

<repository>

<id>pentaho1</id>

<name>Pentaho Repository1</name>

<url>http://repository.pentaho.org/artifactory/repo/</url>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

2.kettle一些核心的依赖,由于有些jar包下载不下来,所以exclution掉之后再去mvn仓库找合适的包:

<!-- kettle begin -->

<dependency>

<groupId>pentaho-kettle</groupId>

<artifactId>kettle-core</artifactId>

<version>${kettle.version}</version>

<exclusions>

<exclusion>

<groupId>jug-lgpl</groupId>

<artifactId>jug-lgpl</artifactId>

</exclusion>

<exclusion>

<groupId>org.apache.commons</groupId>

<artifactId>commons-vfs2</artifactId>

</exclusion>

<exclusion>

<groupId>secondstring</groupId>

<artifactId>secondstring</artifactId>

</exclusion>

<exclusion>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

</exclusion>

<exclusion>

<artifactId>xercesImpl</artifactId>

<groupId>xerces</groupId>

</exclusion>

<exclusion>

<groupId>org.apache.xmlgraphics</groupId>

<artifactId>batik-js</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>pentaho-kettle</groupId>

<artifactId>kettle-engine</artifactId>

<version>${kettle.version}</version>

<exclusions>

<exclusion>

<groupId>org.apache.commons</groupId>

<artifactId>commons-vfs2</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>pentaho-library</groupId>

<artifactId>libbase</artifactId>

<version>${kettle.version}</version>

</dependency>

<dependency>

<groupId>pentaho-library</groupId>

<artifactId>libformula</artifactId>

<version>${kettle.version}</version>

</dependency>

<dependency>

<groupId>pentaho</groupId>

<artifactId>metastore</artifactId>

<version>${kettle.version}</version>

</dependency>

<dependency>

<groupId>pentaho</groupId>

<artifactId>pentaho-mongodb-plugin</artifactId>

<version>${kettle.version}</version>

</dependency>

<dependency>

<groupId>pentaho</groupId>

<artifactId>pentaho-mongo-utils</artifactId>

<version>6.0.0.0-351</version>

</dependency>

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-vfs2</artifactId>

<version>2.1</version>

</dependency>

<dependency>

<groupId>net.sourceforge.jexcelapi</groupId>

<artifactId>jxl</artifactId>

<version>2.6.12</version>

</dependency>

<dependency>

<groupId>rhino</groupId>

<artifactId>js</artifactId>

<version>1.7R2</version>

</dependency>

<!-- kettle end -->

3.下载jar包时当遇到500m大小的jar时,暂停mvn手动下载然后移动到本地仓库

插件的路径:D:\dev\apache-maven-3.3.9\repository\pentaho\pentaho-big-data-plugin\6.0.0.0-353

4.java调本地ktr代码:

 import java.util.List;

 import org.junit.Test;
import org.junit.runner.RunWith;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.Result;
import org.pentaho.di.core.RowMetaAndData;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.job.Job;
import org.pentaho.di.job.JobMeta;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import cn.shunlu.repository.BaseDataInitTest; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="/applicationContext.xml")
public class KettleTest extends BaseDataInitTest{ private static Logger logger = LoggerFactory.getLogger(KettleTest.class); private static final String KETTLE_PLUGIN_BASE_FOLDER = "E:\\dev\\pentaho\\data-integration\\plugins\\";
// private static final String KETTLE_PLUGIN_BASE_FOLDER = "C:\\dev\\pentaho6\\data-integration\\system\\karaf\\system\\pentaho";
// private static final String KETTLE_PLUGIN_BASE_FOLDER = "C:\\dev\\pentaho6\\data-integration\\plugins"; /**
* 调转换
*/
@Test
public void test() {
logger.info("hi"+ logger.getClass().getName());
try
{
//这里是设置我们pentaho的运行环境,实际上我们加入的maven依赖只是为了让代码编译通过,实际真正干活的还是pentaho自己
//也可以自己建个maven的私服把pentaho里面的运行环境的jar丢上去,就能通过java调了
System.setProperty("KETTLE_PLUGIN_BASE_FOLDERS", KETTLE_PLUGIN_BASE_FOLDER);
String transPath = "e:\\tmp\\2.ktr"; KettleEnvironment.init(); TransMeta transMeta = new TransMeta(transPath); Trans trans = new Trans(transMeta);
System.out.println(trans);
trans.setVariable("importOrExport", "出口");
trans.setVariable("batchId", "57bebcfd816c0dffb72d6fa4");
trans.setVariable("codeMap_type", "country");
trans.execute(null); trans.waitUntilFinished(); Result r = trans.getResult();
List<RowMetaAndData> rowsResult = r.getRows(); if (trans.getErrors() > 0)
{
throw new Exception(trans.getResult().getLogText());
}
}
catch (Exception e)
{
e.printStackTrace();
}
} /**
*
* @description 调job
* @date 2016年9月6日
* @author
*/
@Test
public void testJob() throws Exception{
logger.info("hi"+ logger.getClass().getName());
try {
System.setProperty("KETTLE_PLUGIN_BASE_FOLDERS", KETTLE_PLUGIN_BASE_FOLDER); String jobPath = "e:\\tmp\\job1.kjb";
KettleEnvironment.init(); JobMeta jobMeta = new JobMeta(jobPath, null); Job job = new Job(null, jobMeta); job.setVariable("importOrExport", "出口");
job.setVariable("batchId", "57bebcfd816c0dffb72d6fa4");
job.setVariable("codeMap_type", "country"); job.start();
job.waitUntilFinished(); if (job.getErrors() > 0) {
throw new Exception(
"There are errors during job exception!(执行job发生异常)");
}
} catch (KettleException e) {
e.printStackTrace();
}
} }

注:加依赖的目的就是为了让编译能通过,最后运行的环境其实还是我们手动指定的plugins目录如图所示:

这里只是写了个testCase来调用我们本地.ktr和.kjb pentaho这边接收参数的话,我也是只做了个简单的job.

调转换就直接这么接收参数:

如果是调job接收命名参数需要在他的下一个步骤转换里面设置写命名参数就行了:

然后这个转换还是跟上一个转换一样的,而且参数也是那么接收的.${paramName}这样子.其实代码网上很多,但是整合maven那些依赖之间的关系特麻烦.

最近整合发现个问题,如果不将mongo-plugins和mongo-utils包放入plugins目录里面也无法成功调用,因此需要去到,

增加完之后的plugins目录:

Javaweb整合mongo和kettle6.0的环境配置的更多相关文章

  1. cocos2d-x3.0 windows 环境配置

    cocos2d-x3.0 windows 环境配置 参考Oo泡泡糖oO的CSDN博文 :http://blog.csdn.net/u010296979/article/details/24273393 ...

  2. springboot学习入门简易版八---springboot2.0多环境配置、整合mybatis mysql8+(19-20)

    2.11 SpringBoot多环境配置(19)  application.properties中配置 Spring.profiles.active=prd 配置环境: Application-dev ...

  3. 【MRPT】【icp-slam-live】Vs2013+ cmake3.6.1 + mrpt1.4.0+opencv2.9.4+wxWidget3.0.2环境配置

    Win10下Vs2013 + cmake3.6.1 + mrpt1.4.0+opencv2.9.4+wxWidget3.1.0环境配置 所接触过的最令我崩溃的环境配置.之前没有考虑到vs2013 20 ...

  4. Berkeley DB (VC6.0 编译环境配置)

    操作系统:winxp VC环境:VC6.0 必需文件:Berkeley DB安装文件(db-.msi) 下载地址:http://www.oracle.com/technology/software/p ...

  5. 75.VS2013和opencv3.1.0开发环境配置

    首先要做的就是 开发环境配置,具体过程如下: Step 1:OpenCV环境变量配置 我的电脑--->属性--->高级系统设置--->高级--->环境变量--->系统变量 ...

  6. activiti自定义流程之整合(一):整体环境配置

    结合之前所说的自定义流程的思路,分别是后台.前台.整合,之前的内容也分别进行了相关的练习和尝试,现在就该到了最后的整合了,依旧是以实现功能为目的,细节暂且不去管他. 因为我们实际项目后端用的是spri ...

  7. mac在xampp下使用yii2.0开发环境配置

    在mac上装环境,折腾了我好久.先用是mac自带的php,但自带的PHP很多扩展都需要自己安装.libevent,memcache等扩展都安装好了之后,发现pdo_mysql.dll扩展又没有,悲剧的 ...

  8. Win7 OpenCV 3.0.0 VS2013 环境配置

    参考资料:http://jingyan.baidu.com/article/75ab0bcbee4b47d6864db2fc.html 注: x86 x64 这些根据自己的系统以及需求而定, 这里就不 ...

  9. gtk+3.0的环境配置及基于gtk+3.0的python简单样例

    /*********************************************************************  * Author  : Samson  * Date   ...

随机推荐

  1. 天气情况(思维,dp思想)

    天气情况 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  2. TimeSpan类【转】

    TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); //获取当前时间的刻度数 //执行某操作 ............................ . ...

  3. SpringNote01.基于SpringMVC-Hibernate的Blog系统

    最近,在学习Spring,做这样一个简单的blog系统,主要是让自己动手练习使用Spring,熟练的使用才干进一步的深入学习.该项目使用Maven构建,使用git进行代码管理,通过这样一个小项目,熟悉 ...

  4. 分享一个用安卓手机就能引导pc安装linux系统办法

    1.首先安卓手机下载软件DriveDroid.apk http://pan.baidu.com/s/1qW4pbT6 2.下载linux镜像文件放手机存储卡存储,放到Download/images/以 ...

  5. 【最小费用最大流】【HDU1533】【Going Home】

    题意 给你一个类似这样的图 ...H.... ...H.... ...H.... mmmHmmmm ...H.... ...H.... ...H.... 问所有H移动到所有m上花费最少的步数 以所有H ...

  6. LeetCode Day5——House Robber

    问题描述: 意思就是说:给定一个数组,寻找一种选取方法,使得在保证任何两个相邻元素不同时被选的条件下得到的数值总和最大. 1. 递归 设nums为数组首地址,numsSize为数组的大小,max[i] ...

  7. oracle 日期to_char转换24小时制12小时制

    1>以12小时制显示 SQL>select to_char(sysdate,'YYYY-MM-DD HH12:MI:SS AM')from dual; TO_CHAR(SYSDATE,'Y ...

  8. new关键字和newInstance()方法的区别

    转载:http://blog.csdn.net/iloveyin/article/details/7965183 1.类的加载方式不同    在执行Class.forName("a.clas ...

  9. 搭建SSH环境之添加所需jar包

    一.首先介绍要添加框架环境: JUnit Struts2 Hibernate Spring (1)配置JUnit /**-------------------------添加JUnit-------- ...

  10. [ZT]图像处理库的比较:OpenCV,FreeImage,CImg,CxImage

    1.对OpenCV 的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法: 然后将图像格式和矩阵运算, ...