smartKettle离线部署及问题记录

目录

  • 📚第一章 前言
    • 📗背景
    • 📗目的
    • 📗总体方向
  • 📚第二章 部署
    • 📗源码下载
    • 📗后端部署
      • 📕导入后端项目
      • 📕修改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连接参考如下(注意serverTimezoneallowPublicKeyRetrieval,这里使用的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 allowed
	at 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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/243200.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

0x13 链表与邻接表

0x13 链表与邻接表 数组是一种支持随机访问&#xff0c;但不支持在任意位置插入和删除元素的数据结构。与之相对应&#xff0c;链表支持在任意位置插入或删除元素&#xff0c;但只能按顺序依次访问其中元素。我们可以使用一个struct来表示链表的节点&#xff0c;其中可以存储任…

MySQL线上死锁案例分析

项目场景 项目开发中有两张表&#xff1a;c_bill(账单表)&#xff0c;c_bill_detail(账单明细表)&#xff0c;他们的表结构如下&#xff08;这里只保留必要信息&#xff09;&#xff1a; CREATE TABLE c_bill_detail (id bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 主…

Gin之GORM 查询语句

前期工作可以看之前的&#xff08;连接数据库&#xff1b;以及确定要操作的库&#xff09; Gin之GORM 操作数据库&#xff08;MySQL&#xff09;-CSDN博客https://blog.csdn.net/m0_72264240/article/details/134948202?spm1001.2014.3001.5502这次我们操作gin库下的另外一个…

Lenovo联想拯救者Legion Y9000X 2021款(82BD)原装出厂Windows10系统

链接&#xff1a;https://pan.baidu.com/s/1GRTR7CAAQJdnh4tHbhQaDQ?pwdl42u 提取码&#xff1a;l42u 联想原厂WIN10系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&am…

记录汇川:套接字TCP通信-梯形图

H5U集成一路以太网接口。使用AutoShop可以通过以太网方便、快捷对H5U进行行监控、下载、上载以及调试等操作。同时也可以通过以太网与网络中的其他设备进行数据交互。H5U集成了Modbus-TCP协议&#xff0c;包括服务器与客户端。可轻松实现与支持Modbus-TCP的设备进行通讯与数据交…

Redis哨兵模式:什么是哨兵模式、哨兵模式的优缺点、哨兵模式的主观下线和客观下线、投票选举、Redis 哨兵模式搭建

文章目录 什么是哨兵模式哨兵模式的优缺点主观下线和客观下线投票选举哨兵模式场景应用Redis version 6.0.5 集群搭建下载文件环境安装解压编译配置文件启动关闭密码设置 什么是哨兵模式 哨兵模式是Redis的高可用解决方案之一&#xff0c;它旨在提供自动故障转移和故障检测的功…

数据分析基础之《numpy(3)—基本操作》

一、基本操作 1、adarray.方法() 2、np.函数名() 二、生成数组的方法 1、生成0和1的数组 为什么需要生成0和1的数组&#xff1f; 我们需要占用位置&#xff0c;或者生成一个空的数组 &#xff08;1&#xff09;ones(shape[, dtype, order]) 生成一组1 shape&#xff1a;形…

STM32读取EEPROM存储芯片AT24C512故障然后排坑记录

背景&#xff1a; 有一个项目用到STM32F091芯片去读取 AT24C512C-SSHD EEPROM 芯片&#xff0c;我直接移植了之前项目的IIC库&#xff0c;结果程序运行后&#xff0c;读不出EEPROM里面的数据。 摘要&#xff1a; 本文主要介绍一个基于STM32F091芯片和AT24C512C-SSHD EEPROM芯片…

Java面向对象思想以及原理以及内存图解

文章目录 什么是面向对象面向对象和面向过程区别创建一个对象用什么运算符?面向对象实现伪代码面向对象三大特征类和对象的关系。 基础案例代码实现实例化创建car对象时car引用的内存图对象调用方法过程 成员变量和局部变量作用范围在内存中的位置 关于对象的引用关系简介相关…

6、生产者压缩算法面面观

生产者压缩算法面面观 1、怎么压缩&#xff1f;2、何时压缩&#xff1f;2.1、生产者端2.2、Broker 端 3、何时解压缩&#xff1f;4、各种压缩算法对比 压缩的思想&#xff0c;实际就是用时间去换空间的经典 trade-off 思想&#xff0c;在 Kafka 中&#xff0c;就是用 CPU 时间去…

Linux | 多线程

前言 本文主要介绍多线程基础知识&#xff0c;以及使用多线程技术进行并发编程&#xff1b;最后会介绍生产者消费者模型&#xff1b; 一、线程基本认识 1、什么是线程 如果你是科班出生&#xff0c;你肯定听过线程相关概念&#xff1b;但是你可能没有真正搞懂什么是线程&#…

十八)Stable Diffusion使用教程:艺术二维码案例

今天说说怎么样使用SD生成艺术二维码。 我们直接上图。 方式有三种,分别如下: 1)方式一:直接 contronet 的tile模型进行控制 使用QRBTF Classic生成你的二维码。 首先输入网址,选择喜欢的二维码样式(推荐第一种就行): 然后选择相应参数,这里推荐最大的容错率,定…

Linux 安装图形界面 “startx”

———————————————— 报错&#xff0c;如下&#xff1a; bash :startx command not found ———————————————— 解决方法&#xff1a; 1.先安装 — X Windows System&#xff0c;输入以下命令&#xff1a; yum groupinstall “X Window System”…

第一个“hello Android”程序

1、首先安装Android studio&#xff08;跳过&#xff09; Android Studio是由Google推出的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于Android应用程序的开发。它是基于JetBrains的IntelliJ IDEA IDE构建的&#xff0c;提供了丰富的功能和工具&#xff0…

2002-2023年各省环境规制力度数据(ZF报告词频环境规制关键词词频统计)

2002-2023年各省环境规制力度数据&#xff08;ZF报告词频环境规制关键词词频统计&#xff09; 1、时间&#xff1a;2001-2022年 2、指标&#xff1a;文本总长度、仅中英文-文本总长度、文本总词频-全模式、文本总词频-精确模式、环境规制力度词频和、环境保护、环保、污染、能…

Linux常用命令(二)

目录 Linux常用命令(二)1、grep命令2、df命令3、hostname命令4、ps命令5、top命令6、echo命令7、cal命令8、firewall-cmd命令9、du命令10、netstat命令 Linux常用命令(二) 1、grep命令 功能说明&#xff1a;查找文件里符合条件的字符串。 举 例&#xff1a;ps aux | grep yum…

高通平台开发系列讲解(SIM卡篇)SIM卡基础概念

文章目录 一、SIM卡基本定义二、卡的类型三、SIM卡的作用三、SIM卡基本硬件结构四、SIM卡的内部物理单元五、卡文件系统沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍SIM的相关组件。 一、SIM卡基本定义 功能和作用:SIM卡的主要功能是存储用户的身份信…

【Hadoop】Hadoop基础架构的变化

1.x版本架构2.x版本架构3.x版本架构参考 1.x版本架构 NameNode&#xff1a;&#xff0c;负责文件系统的名字空间(Namespace)管理以及客户端对文 件的访问。NameNode负责文件元数据的管理和操作。是单节点。 Secondary NameNode&#xff1a;它的职责是合并NameNode的edit logs到…

什么是自我力量?如何提高自我力量?

自我力量 &#xff0c;是承受力和容纳力的评估指标&#xff0c;可以理解为不逃避&#xff0c;承受情感、冲动和幻想的能力&#xff0c;提高学习和工作效率。在企业人才测评中&#xff0c;ES用于评估工作能力&#xff0c;在校学生则可用于评估学习效率。 自我力量 &#xff0c;…

【什么是POI,为什么它会导致内存溢出?】

什么是POI&#xff0c;为什么它会导致内存溢出 什么是POIExcel并没看到的那么小POI的溢出原理 拓展知识几种Workbook格式 什么是POI Apache POl&#xff0c;是一个非常流行的文档处理工具&#xff0c;通常大家会选择用它来处理Excel文件。但是在实际使用的时候经常会遇到内存溢…