背景介绍
看过网上很多介绍kettle插件开发的博文,在真正开发之前存在很多繁琐的工作,例如:将kettle工具中的lib包安装到本地maven仓库。通常会执行如下操作:
- 打开kettle/data-integration/lib目录,执行如下命令
mvn install:install-file -Dfile=./kettle-core-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-core -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./kettle-dbdialog-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-dbdialog -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./kettle-engine-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-engine -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./kettle-ui-swt-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-ui-swt -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./pentaho-metadata-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=pentaho-metadata -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./metastore-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=metastore -Dversion=6.1.0.1-196 -Dpackaging=jar
- 打开kettle/data-integration/libswt/win64目录,执行如下命令
mvn install:install-file -Dfile=./swt-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=swt -Dversion=6.1.0.1-196 -Dpackaging=jar
执行这一堆命令,我们可能稍微能忍受一下(毕竟都是搬运工嘛,复制粘贴一下就好了)。然而,往往我们自己使用的又不是6.1.0.1-196这个版本,或者kettle升级了,或者本地仓库重置了,亦或接手这个项目的后来者(比如我),我们这个脚本还要手动替换一下。
为了实现插件开发流程的简化,结合已有的maven插件对pom文件进行了简单的修改,毕竟maven的天职就是对依赖包的统一管理嘛!!!
pom配置
在打开IDE之前,需要配置一下kettle的系统环境变量KETTLE_HOME,这个环境变量会在pom中使用。举个例子,在windows系统中,KETTLE_HOME可以配置为D:\Program Files\kettle71,该目录为kettle的安装目录,其文件结构如下:
.
└── kettle71
└── data-integration
├── classes
│ └── ...
├── lib
│ └── *.jar
├── libswt
│ ├── linux
│ │ ├── x86
│ │ │ └── swt.jar
│ │ └── x86_64
│ │ └── swt.jar
│ ├── osx64
│ │ └── swt.jar
│ ├── win32
│ │ └── swt.jar
│ └── win64
│ └── swt.jar
....
打开IDE或直接打开maven管理的kettle插件工程,修改pom.xml文件:
- properties标签配置
<properties>
<kettle.version>7.1.0.0-12</kettle.version>
<kettle.home.lib>${env.KETTLE_HOME}/data-integration/lib</kettle.home.lib>
<kettle.home.libswt>${env.KETTLE_HOME}/data-integration/libswt/win64</kettle.home.libswt>
</properties>
- plugin标签配置
添加maven-install-plugin插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.4</version>
<executions&g