WebSpoon9.0(KETTLE的WEB版本)编译 + tomcatdocker部署 + 远程调试教程
前言
Kettle简介 Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定
WebSpoon是Kettle的Web版本,由Kettle社区维护,不受Pentaho支持,实现了Kettle的大部分功能
拉取代码
仓库地址:https://github.com/HiromuHota/pentaho-kettle
git clone https://github.com/HiromuHota/pentaho-kettle.git编译
配置 maven 的环境变量
将 settings.xml 放在你用户目录下 /.m2 中按需修改
settings.xml 内容如下
<?xml version="1.0" encoding="UTF-8"?> <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"> <!-- This is the recommended settings.xml for development of Hitachi Vantara projects. --> <!-- If your wish to mirror everything through pentaho-public's repo uncomment bellow. Not recommended for external developers. --> <!-- <mirrors> <mirror> <id>pentaho-public</id> <url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> --> <!-- Don't forget to add setting-security.xml so that the password get's decrypted --> <servers> <server> <id>pentaho-public</id> <username>devreaduser</username> <password>{zIMyJWfHKfoHiBJAVsAgW4E5BcJzR+nhTtgPy0J+/rs=}</password> </server> </servers> <!-- You might want to tweak the 'updatePolicy' configuration to fit your need on having updated snapshots and releases. Our recommendation is to set it to 'never' and run maven with the '-U' flag when needed. --> <profiles> <profile> <id>pentaho</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>pentaho-public</id> <name>Pentaho Public</name> <url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>pentaho-public</id> <name>Pentaho Public</name> <url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <!-- this lets you call plugins from these groups in their short form --> <pluginGroups> <pluginGroup>org.pentaho.maven.plugins</pluginGroup> <pluginGroup>com.pentaho.maven.plugins</pluginGroup> <pluginGroup>com.github.spotbugs</pluginGroup> </pluginGroups> </settings>本地构建以下依赖库:
pentaho-xul-swt
git clone -b webspoon-9.0 https://github.com/HiromuHota/pentaho-commons-xul.git cd pentaho-commons-xul mvn clean install -pl swt -DskipTestsrap
拉取代码后,进入 rap/releng/org.eclipse.rap.build 目录修改 pom.xml 文件, 找到 properties 标签
将 jetty-repo.url 标签值改为 https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.44.v20210927/
将 rap-extra-repo.url 标签值改为 https://download.eclipse.org/rt/rap/base-platforms/3.14/extra-dependencies/
git clone -b webspoon-3.12.0 https://github.com/HiromuHota/rap.git cd rap mvn clean install -DskipTestspentaho-vfs-browser
git clone -b webspoon-9.0 https://github.com/HiromuHota/apache-vfs-browser.git cd apache-vfs-browser mvn clean install -DskipTests以上操作无误后,执行mvn clean install -DskipTests构建项目
构建成功后可在 assemblies/client/target 目录下找到 spoon.war 部署包
也可直接在 https://github.com/HiromuHota/pentaho-kettle/releases 下载已经构建好的 war 包
部署
tomcat 部署
将spoon.war放入tomcat/webapps目录下
点击下载 9.x 版本的pdi-ce-xxxx.zip并解压
将system和plugins目录放入tomcat/bin下
启动 tomcat, 访问
Docker部署
# 拉取镜像 docker pull hiromuhota/webspoon # 运行, 访问 http://localhost:8080 docker run -d -p 8080:8080 hiromuhota/webspoonDocker-compose 部署
docker-compose.yml 文件:
version: "3.3" services: kettle: image: hiromuhota/webspoon:latest volumes: # 如需添加jar包则将jar包挂载进docker容器 - ./volumes/lib/mysql-connector-java-5.1.48.jar:/usr/local/tomcat/webapps/spoon/WEB-INF/lib/mysql-connector-java-5.1.48.jar # 保证重启后资源库数据不丢失,需挂载此目录 # 需要提前创建好该文件, 并授权: mkdir -m 777 ./volumes/.kettle - ./volumes/.kettle:/home/tomcat/.kettle # 如需汉化,挂载此目录并添加配置 - ./volumes/setenv.sh:/usr/local/tomcat/bin/setenv.sh environment: - LANG=zh_CN.UTF-8 ports: - "9002:8080"setenv.sh文件
CLASSPATH=/usr/local/tomcat/lib/webspoon-security-9.0.0.0-423-22.jar CATALINA_OPTS="-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true" JAVA_OPTS="-Duser.language=zh -Duser.region=CN -Dfile.encoding=UTF-8"启动与停止
# 在 docker-compose.yml 文件所在路径下执行 # 启动 docker compose up -d # 停止 docker compose down远程调试
开启远程调试服务
docker run -d -p 8080:8080 -p 9003:8000 -e JPDA_ADDRESS=8000 -e CATALINA_OPTS="-Dorg.eclipse.rap.rwt.developmentMode=true" hiromuhota/webspoon catalina.sh jpda run或配置为 docker-compose.yml 文件
version: "3.3" services: kettle: image: hiromuhota/webspoon:latest environment: - JPDA_ADDRESS=8000 - CATALINA_OPTS="-Dorg.eclipse.rap.rwt.developmentMode=true" ports: - "8080:8080" - "9003:8000" command: ["catalina.sh", "jpda", "run"]idea 打开本地编译好的源码
增加远程调试配置Remote JVM debuge, 随后启动
控制台打印如下内容即可
Connected to the target VM, address: ‘192.168.5.22:9003’, transport: ‘socket’
