一:源码打包
这里为什么是kettle 9.2,因为kettle 9.3+需要jdk11
这里直接去下载kettle的源码,tag=9.2.0.4-R
。这里需要自己搭建一个nexus仓库,因为有些包从kettle的仓库里面下载不下来。
https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/
完整的settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>D:/tools/maven/apache-maven-3.6.3/conf/repositorylocalRepository>
<pluginGroups>
<pluginGroup>org.pentaho.maven.pluginspluginGroup>
<pluginGroup>com.pentaho.maven.pluginspluginGroup>
<pluginGroup>com.github.spotbugspluginGroup>
pluginGroups>
<proxies>
proxies>
<servers>
<server>
<id>pentaho-publicid>
<username>devreaduserusername>
<password>{zIMyJWfHKfoHiBJAVsAgW4E5BcJzR+nhTtgPy0J+/rs=}password>
server>
servers>
<mirrors>
<mirror>
<id>mirrorIdid>
<mirrorOf>*mirrorOf>
<name>maven-publicname>
<url>http://172.16.30.203:8081/repository/maven-public/url>
mirror>
mirrors>
<profiles>
<profile>
<id>nexusid>
<repositories>
<repository>
<id>nexus-snapshotsid>
<url>http://172.16.30.203:8081/repository/maven-snapshots/url>
<releases>
<enabled>falseenabled>
releases>
<snapshots>
<enabled>trueenabled>
<updatePolicy>alwaysupdatePolicy>
snapshots>
repository>
<repository>
<id>nexus-releasesid>
<url>http://172.16.30.203:8081/repository/maven-releases/url>
<releases>
<enabled>trueenabled>
releases>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>snapshotsid>
<url>http://172.16.30.203:8081/repository/maven-snapshots/url>
<releases>
<enabled>falseenabled>
releases>
<snapshots>
<enabled>trueenabled>
<updatePolicy>alwaysupdatePolicy>
snapshots>
pluginRepository>
<pluginRepository>
<id>nexus-releasesid>
<url>http://172.16.30.203:8081/repository/maven-releases/url>
<releases>
<enabled>trueenabled>
releases>
<snapshots>
<enabled>falseenabled>
snapshots>
pluginRepository>
pluginRepositories>
profile>
profiles>
<activeProfiles>
<activeProfile>nexusactiveProfile>
activeProfiles>
settings>
idea导入kettle,等待下载maven依赖,慢慢等,需要很长的时间。
有些包在kettle的远程仓库有,但是下载不下来,解决方案是手动下载,然后上传到自己的maven仓库
这里需要删除本地的文件,上传再重新下载
maven依赖下载成功了,idea上maven依赖还是红色的,这是idea的bug,解决方案为pom.xml去掉依赖,maven刷新,再加上依赖,maven刷新。
maven依赖下载成功,打包一般没问题
解压,双击Spoob.bat
即可使用
二:idea开发环境启动
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-4623 in java.library.path
no swt-gtk in java.library.path
Can't load library: C:\Users\Administrator\.swt\lib\win32\x86_64\swt-gtk-4623.dll
Can't load library: C:\Users\Administrator\.swt\lib\win32\x86_64\swt-gtk.dll
解决办法:
<dependency>
<groupId>com.swtgroupId>
<artifactId>swtartifactId>
<version>1.0.0version>
<scope>systemscope>
<systemPath>${project.basedir}/lib/swt.jarsystemPath>
dependency>
org.pentaho.di.core.exception.KettleException:
Unable to find plugin with ID 'Kettle'. If this is a test, make sure kettle-core tests jar is a dependency. If this is live make sure a kettle-password-encoder-plugins.xml exits in the classpath
at org.pentaho.di.core.encryption.Encr.init(Encr.java:61)
at org.pentaho.di.core.KettleClientEnvironment.init(KettleClientEnvironment.java:124)
at org.pentaho.di.core.KettleClientEnvironment.init(KettleClientEnvironment.java:80)
at org.pentaho.di.core.KettleEnvironment.init(KettleEnvironment.java:134)
at org.pentaho.di.core.KettleEnvironment.init(KettleEnvironment.java:101)
at org.pentaho.di.core.KettleEnvironment.init(KettleEnvironment.java:82)
at org.pentaho.di.ui.spoon.Spoon$1.call(Spoon.java:643)
2022/11/23 18:23:44 - General - ERROR (version Unknown, build 0 from 2022/11/23 18:23:42.892 by Administrator) : Error initializing transformation
2022/11/23 18:23:44 - General - ERROR (version Unknown, build 0 from 2022/11/23 18:23:42.892 by Administrator) : org.pentaho.ui.xul.XulException: Can not locate Xul document [ui/spoon.xul]
2022/11/23 18:23:44 - General - at org.pentaho.ui.xul.impl.AbstractXulLoader.findDocument(AbstractXulLoader.java:512)
2022/11/23 18:23:44 - General - at org.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:229)
2022/11/23 18:23:44 - General - at org.pentaho.di.ui.spoon.Spoon.init(Spoon.java:870)
2022/11/23 18:23:44 - General - at org.pentaho.di.ui.spoon.Spoon.createContents(Spoon.java:9352)
2022/11/23 18:23:44 - General - at org.eclipse.jface.window.Window.create(Window.java:431)
2022/11/23 18:23:44 - General - at org.eclipse.jface.window.Window.open(Window.java:788)
2022/11/23 18:23:44 - General - at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9383)
2022/11/23 18:23:44 - General - at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:711)
2022/11/23 18:23:44 - General - ERROR (version Unknown, build 0 from 2022/11/23 18:23:42.892 by Administrator) : Error starting Spoon shell
2022/11/23 18:23:44 - General - ERROR (version Unknown, build 0 from 2022/11/23 18:23:42.892 by Administrator) : java.lang.NullPointerException
2022/11/23 18:23:44 - General - at org.pentaho.di.ui.spoon.Spoon.init(Spoon.java:923)
2022/11/23 18:23:44 - General - at org.pentaho.di.ui.spoon.Spoon.createContents(Spoon.java:9352)
2022/11/23 18:23:44 - General - at org.eclipse.jface.window.Window.create(Window.java:431)
2022/11/23 18:23:44 - General - at org.eclipse.jface.window.Window.open(Window.java:788)
2022/11/23 18:23:44 - General - at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9383)
2022/11/23 18:23:44 - General - at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:711)
2022/11/23 18:27:07 - General - ERROR (version Unknown, build 0 from 2022/11/23 18:27:05.372 by Administrator) : Error starting Spoon shell
2022/11/23 18:27:07 - General - ERROR (version Unknown, build 0 from 2022/11/23 18:27:05.372 by Administrator) : java.lang.NoClassDefFoundError: org/jaxen/JaxenException
2022/11/23 18:27:07 - General - at org.pentaho.ui.xul.impl.AbstractXulLoader.preProcess(AbstractXulLoader.java:357)
2022/11/23 18:27:07 - General - at org.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:113)
2022/11/23 18:27:07 - General - at org.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:128)
2022/11/23 18:27:07 - General - at org.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:122)
2022/11/23 18:27:07 - General - at org.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:239)
2022/11/23 18:27:07 - General - at org.pentaho.di.ui.spoon.Spoon.init(Spoon.java:870)
2022/11/23 18:27:07 - General - at org.pentaho.di.ui.spoon.Spoon.createContents(Spoon.java:9352)
2022/11/23 18:27:07 - General - at org.eclipse.jface.window.Window.create(Window.java:431)
2022/11/23 18:27:07 - General - at org.eclipse.jface.window.Window.open(Window.java:788)
2022/11/23 18:27:07 - General - at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9383)
2022/11/23 18:27:07 - General - at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:711)
2022/11/23 18:27:07 - General - Caused by: java.lang.ClassNotFoundException: org.jaxen.JaxenException
2022/11/23 18:27:07 - General - at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
2022/11/23 18:27:07 - General - at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
2022/11/23 18:27:07 - General - at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
2022/11/23 18:27:07 - General - at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
<dependency>
<groupId>jaxengroupId>
<artifactId>jaxenartifactId>
dependency>
启动成功