目录
- 📚第一章 前言
- 📗背景
- 📗目的
- 📗总体方向
- 📚第二章 部署
- 📗源码下载
- 📗后端部署
- 📕导入后端项目
- 📕修改settings.xml(自动下载相关jar包)
- 📕 编译
- 📕 修改配置文件application.yml
- 📕 初始化数据库
- 📕 打包上传启动
- 📕 可以正常访问接口界面,即服务启动成功
- 📗前端部署
- 📕基础环境按照
- 📕编译
- 📕本地启动
- 📕服务器部署验证
- 📘 nginx配置
- 📘 登录
- ⁉️问题记录
- ❓问题一: jar包下载不下来
- ❗解决方式一:正常不会有问题,建议直接使用项目中提供的settings.xml替换,修改地址即可
- ❕解决方式二:手动下载,费劲呢!!!!
- 📘修改jar包名称
- 📘逐一上传到本地仓库
- ❗解决方式三:已打包上传CSDN,免费下载
- ❕解决方式二:
- ❓问题二:启动报错(系统默认mysql5,使用8时忘了更新驱动包)
- ❗解决方式:替换msyql8驱动
- 先本地验证
📚第一章 前言
📗背景
昨天下载了Kettle9.2
的源码,简单了解了下代码结构,今天来看下smartKettle
,它相当于之前部署的pentaho-server-ce-9.4.0.0-343,是一款超轻量级的kettle web
端调度监控平台,详见官网
📗目的
我的最终目的和smartKettle
的终极目标是一致的,实现Web端的Kettle任务流程编排,今天部署smartKettle
也是寻求一些启发点
📗总体方向
干就完了
📚第二章 部署
📗源码下载
下载地址:https://gitee.com/hundage/smartkettle.git
📗后端部署
📕导入后端项目
📕修改settings.xml(自动下载相关jar包)
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"><localRepository>D:\soft\apache-maven-3.8.5\apache-maven-3.8.5\repository</localRepository><servers><server><id>rdc-releases</id><username>Y3z0VZ</username><password>Bb8byTSlq0</password></server><server><id>rdc-snapshots</id><username>Y3z0VZ</username><password>Bb8byTSlq0</password></server></servers><mirrors><mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>nexus-aliyun</name><url>https://maven.aliyun.com/nexus/content/groups/public</url></mirror></mirrors><profiles><profile><id>first-repository</id><repositories><repository><id>rdc-snapshots</id><url>https://repo.rdc.aliyun.com/repository/128991-snapshot-NY2Ub0/</url><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories></profile><profile><id>second-repository</id><repositories><repository><id>rdc-releases</id><url>https://repo.rdc.aliyun.com/repository/128991-release-EJH8o1/</url><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories></profile><profile><id>third-repository</id><repositories><repository><id>central</id><url>https://maven.aliyun.com/nexus/content/groups/public</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile><profile><id>forth-repository</id><repositories><repository><id>snapshots</id><url>https://maven.aliyun.com/repository/central</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile><profile><id>fifth-repository</id><repositories><repository><id>pentaho-kettle</id><name>pentaho-kettle仓库</name><url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url></repository></repositories></profile></profiles><activeProfiles><activeProfile>first-repository</activeProfile><activeProfile>second-repository</activeProfile><activeProfile>third-repository</activeProfile><activeProfile>forth-repository</activeProfile><activeProfile>fifth-repository</activeProfile></activeProfiles>
</settings>
📕 编译
想放弃了,什么玩意…
全量导入项目,不要只导入后端程序
📕 修改配置文件application.yml
主要配置数据库信息和日志路径(如果不想修改文件,可以配置环境变量,对应配置文件中XTL_XXXX
,不管那种方式都要麻烦一遍的)
JDBC连接参考如下(注意serverTimezone
和allowPublicKeyRetrieval
,这里使用的mysql8
,若是5
请忽略):
jdbc:mysql://xxx:3306/xtl_db?useUniCode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&
📕 初始化数据库
📕 打包上传启动
指定后台运行服务:nohup java -jar smart-kettle-1.0.0-SNAPSHOT.jar /dev/null 2>&1 &
📕 可以正常访问接口界面,即服务启动成功
Swagger
地址:http://xxxx:9753/xtl-server/swagger-ui.html
📗前端部署
📕基础环境按照
之前安装过,就不赘述了,就是下载一个nodejs
,配置下环境变量,可参照Vue项目创建(2.x/3.x 自动/手动)及问题记录
📕编译
- 这里使用的
VSCode
软件,导入前端项目,执行npm install
- 打包:
npm run build
📕本地启动
- 配置服务器地址
- 执行启动:
npm run dev
- 成功登录
📕服务器部署验证
- 编译好的文件在
dist
目录,直接压缩,上传到服务器,通过Nginx
部署
📘 nginx配置
nginx
安装可参照安装nginx两种方式及遇到问题
server {listen 8642;server_name localhost;location / {root /home/opensource/app/smartketlle/ui/dist;try_files $uri $uri/ /index.html;index index.html index.htm;}location /kettle-admin {alias /home/opensource/app/smartketlle/ui/dist;index index.html index.htm;try_files $uri $uri/ /kettle-admin/index.html; #4.重定向,内部文件的指向}location /xtl-server/ {proxy_pass http://localhost:9753/xtl-server/;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
}
📘 登录
⁉️问题记录
❓问题一: jar包下载不下来
❗解决方式一:正常不会有问题,建议直接使用项目中提供的settings.xml替换,修改地址即可
❕解决方式二:手动下载,费劲呢!!!!
官方文档有说明,下载不下来情况下如何处理
📘修改jar包名称
📘逐一上传到本地仓库
mvn install:install-file -Dfile=D:/code/opensource/smartkettle/x-smart-kettle-server/external/x-kettle-core-1.0.0-SNAPSHOT.jar -DgroupId=org.yaukie.xtl -DartifactId=x-kettle-core -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar
mvn install:install-file -Dfile=D:/code/opensource/smartkettle/x-smart-kettle-server/external/x-common-base-1.0.0-SNAPSHOT.jar -DgroupId=org.yaukie.core -DartifactId=x-common-base -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar
mvn install:install-file -Dfile=D:/code/opensource/smartkettle/x-smart-kettle-server/external/x-common-auth-1.0.0-SNAPSHOT.jar -DgroupId=org.yaukie.core -DartifactId=x-common-auth -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar
mvn install:install-file -Dfile=D:/code/opensource/smartkettle/x-smart-kettle-server/external/x1-simple-job-1.0.0-SNAPSHOT.jar -DgroupId=org.yaukie.frame -DartifactId=x1-simple-job -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar
❗解决方式三:已打包上传CSDN,免费下载
下载地址
❕解决方式二:
❓问题二:启动报错(系统默认mysql5,使用8时忘了更新驱动包)
❗解决方式:替换msyql8驱动
<!-- 定义 mysql 版本 --><dependency><groupId>org.yaukie.core</groupId><artifactId>x-common-base</artifactId><version>1.0.0-SNAPSHOT</version><exclusions><exclusion><!--排查掉自带的msyql5 --><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></exclusion></exclusions></dependency><!--重新指定mysql8驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.25</version></dependency>
先本地验证
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowedat com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:833)at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:453)at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
修改配置allowPublicKeyRetrieval=true
,再次启动
启动成功;http://localhost:9753/xtl-server/swagger-ui.html