低代码开源项目Joget的研究——Joget8社区版安装部署

大纲

《低代码开源项目Joget的研究------Joget7社区版安装部署》一文中,我们介绍了oget7的部署。本文我们将介绍Joget8.1社区版的编译部署。

环境准备

安装必要软件

We recommend the use of the LTS version of 11. Java 17 (LTS) is not supported at the moment.

bash 复制代码
# 更新系统包
sudo apt-get update

# 安装Java
sudo apt-get install openjdk-11-jdk

# 安装MySQL
sudo apt-get install mysql-server

# Install Apache Maven 2.2.1 or above
sudo apt-get install maven

# Install Git
sudo apt-get install git

# 安装unzip
sudo apt-get install unzip

配置Java

配置JAVA_HOME

bash 复制代码
sudo vim /etc/environment

在上述文件中,新增如下内容

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

重新加载环境,并检验环境

bash 复制代码
source /etc/environment
echo $JAVA_HOME

配置Java软链

bash 复制代码
sudo mv /usr/bin/java /usr/bin/java_bak
sudo ln -s /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/bin/java

检测java版本

bash 复制代码
java -version

openjdk version "11.0.25" 2024-10-15

OpenJDK Runtime Environment (build 11.0.25+9-post-Ubuntu-1ubuntu124.04)

OpenJDK 64-Bit Server VM (build 11.0.25+9-post-Ubuntu-1ubuntu124.04, mixed mode, sharing)

安装三方库

bash 复制代码
wget https://dev.joget.org/community/download/attachments/19104566/install-libraries.zip
unzip -a install-libraries.zip
cd install-libraries
./install_linux.sh
cd ~

获取源码

bash 复制代码
mkdir joget_src
cd joget_src
git clone --branch 8.1-RELEASE https://github.com/jogetworkflow/jw-community.git
cd ~

配置MySql数据库

创建用户

  1. 使用sudo登录MySql
bash 复制代码
sudo mysql
  1. 设置root用户密码
    在MySQL命令行中,执行以下命令来设置root用户的密码
bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pwd123';
FLUSH PRIVILEGES;
  1. 退出MySql
bash 复制代码
EXIT;
  1. 使用新密码登录MySql
bash 复制代码
mysql -u root -p

创建数据库

仍然以root用户登录MySql

bash 复制代码
CREATE DATABASE jwdb;
EXIT;

导入初始数据

bash 复制代码
mysql -uroot jwdb < joget_src/jw-community/wflow-install/src/main/resources/data/jwdb-empty.sql -p

输入之前创建的root密码(pwd123)

配置数据库连接

在根目录下下载配置文件包

bash 复制代码
cd ~
wget http://dev.joget.org/community/download/attachments/19104566/wflow.zip
unzip -a wflow.zip

修改数据库连接配置

bash 复制代码
cd wflow
sudo vim app_datasource-default.properties

由于我们之前给mysql的root用户设置的了密码pwd123,于是要将此更新到该文件中

yaml 复制代码
#
#Thu Apr 16 17:47:42 MYT 2015
workflowDriver=com.mysql.jdbc.Driver
workflowUrl=jdbc\:mysql\://localhost\:3306/jwdb?characterEncoding\=UTF-8
workflowUser=root
profileName=
workflowPassword=pwd123

配置sessionFactory(非必须,如果后续保存再配置)

wflow-commons/src/main/resources/commonsApplicationContext.xml文件的<property name="hibernateProperties">的下插入<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

如下图:

编译

bash 复制代码
cd ~/joget_src/jw-community/wflow-app/
mvn clean install

下载tomcat

bash 复制代码
cd ~

# 从 Apache Tomcat 官方网站下载最新的 Tomcat 9 二进制发行版
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.98/bin/apache-tomcat-9.0.98.tar.gz

# 解压缩下载的文件
tar xzf apache-tomcat-9.0.98.tar.gz

启动

下载aspectjweaver

aspectjweaver 是 AspectJ 的一个组件,AspectJ 是一个面向方面编程(AOP)的扩展,它用于在 Java 应用程序中实现横切关注点(如日志记录、事务管理、安全性等)。aspectjweaver 是 AspectJ 的织入器,它可以在编译时、类加载时或运行时将切面代码织入到目标代码中。

bash 复制代码
cd ~/wflow/
wget https://repo1.maven.org/maven2/org/aspectj/aspectjweaver/1.8.5/aspectjweaver-1.8.5.jar .
cd ~

移动jw.war文件

将jw.war拷贝到对应目录下

bash 复制代码
# 复制 WAR 文件到 Tomcat 的 webapps 目录
cp ~/joget_src/jw-community/wflow-consoleweb/target/jw.war ~/apache-tomcat-9.0.98/webapps/

编写脚本

编写运行脚本

bash 复制代码
vim tomcat9-run.sh

填入以下内容

bash 复制代码
#!/bin/sh

export CATALINA_PID="$HOME/apache-tomcat-9.0.98/temp/tomcat.pid"
mkdir -p "$HOME/apache-tomcat-9.0.98/temp"
export JAVA_OPTS="-XX:MaxPermSize=128m -Xmx768M -Dwflow.home=./wflow/ -javaagent:./wflow/aspectjweaver-1.8.5.jar"

apache-tomcat-9.0.98/bin/catalina.sh $*

运行

bash 复制代码
sh tomcat9-run.sh start

测试

使用下面命令查看服务所在机器的ip

bash 复制代码
ip addr show

使用该IP的8080端口访问该服务(http://localhost:8080/jw/web/login)

参考资料

相关推荐
一个处女座的程序猿3 小时前
AI之Agent之VibeCoding:《Vibe Coding Kills Open Source》翻译与解读
人工智能·开源·vibecoding·氛围编程
一只大侠的侠4 小时前
React Native开源鸿蒙跨平台训练营 Day16自定义 useForm 高性能验证
flutter·开源·harmonyos
IvorySQL5 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
一只大侠的侠5 小时前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠5 小时前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos
一只大侠的侠5 小时前
React Native开源鸿蒙跨平台训练营 Day20自定义 useValidator 实现高性能表单验证
flutter·开源·harmonyos
晚霞的不甘6 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
晚霞的不甘7 小时前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频
猫头虎7 小时前
OpenClaw-VSCode:在 VS Code 里玩转 OpenClaw,远程管理+SSH 双剑合璧
ide·vscode·开源·ssh·github·aigc·ai编程
一只大侠的侠7 小时前
Flutter开源鸿蒙跨平台训练营 Day12从零开发通用型登录页面
flutter·开源·harmonyos