问题:提示 仅嵌入式版和企业版支持iframe方式内嵌公共链接!
通过离线部署方式基于docker运行的可按如下方式处理
访问: https://github.com/dataease/dataease/tree/v2.10.21 下载源代码
在liunx环境安装:
-
jdk21
-
nodejs 18+
-
maven
设置maven setting 注意关键红色部分 踩坑过来的
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*,!fit2cloud-public</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public\</url>
</mirror>
<mirror>
<id>aliyun-central</id>
<name>阿里云中央仓库</name>
<mirrorOf>central</mirrorOf>
<url>https://maven.aliyun.com/repository/central\</url>
</mirror>
修改的源文件
- 后端 - XpackShareProxyVO.java(改默认值)
vim sdk/api/api-base/src/main/java/io/dataease/api/xpack/share/vo/XpackShareProxyVO.java
// private boolean inIframeError = true;
private boolean inIframeError = false;
- 后端 - XpackShareManage.java
vim core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java
//boolean inIframeError = request.isInIframe() && !LicenseUtil.licenseValid();
boolean inIframeError = false;
- 前端 - index.vue
//const iframeError = ref(true)
const iframeError = ref(false)
//const disableError = ref(true)
const disableError = ref(false)
- 前端 - mobile.vue
vim core/core-frontend/src/views/share/link/mobile.vue
第37行,将:
//const disableError = ref(true)
const disableError = ref(false)
第42行,将:
//const iframeError = ref(true)
const iframeError = ref(false)
按官网说明打包构建
后续命令以我实际部署路径为例:
前置环境
export JAVA_HOME=/opt/dataease2.0/sourcefile/jdk21
export PATH=/opt/dataease2.0/sourcefile/jdk21/bin:PATH
export MAVEN_HOME=/opt/dataease2.0/sourcefile/maven3.9.16
export PATH=/opt/dataease2.0/sourcefile/maven3.9.16/bin:PATH
构建
cd core
/opt/dataease2.0/sourcefile/maven3.9.16/bin/mvn clean package -Pstandalone -U -Dmaven.test.skip=true \
-Dmaven.repo.local=/opt/dataease2.0/sourcefile/repo
项目构建说明:
构建链路:
core-frontend/ npm run build:base
→ 产出 core-frontend/dist/ 目录
→ maven antrun 插件在 generate-resources 阶段
将 dist/ 拷贝到 core-backend/src/main/resources/static/
→ 打进 CoreApplication.jar 的 BOOT-INF/classes/static/
→ Dockerfile 把 jar 放进容器
前端不是独立的 nginx 静态文件,而是打进 Spring Boot jar 的 static 目录里,由后端一起提供服务。
服务器上的完整操作步骤
→ 产出 core-frontend/dist/ 目录
→ maven antrun 插件在 generate-resources 阶段
将 dist/ 拷贝到 core-backend/src/main/resources/static/
→ 打进 CoreApplication.jar 的 BOOT-INF/classes/static/
→ Dockerfile 把 jar 放进容器
前端不是独立的 nginx 静态文件,而是打进 Spring Boot jar 的 static 目录里,由后端一起提供服务。
替换docker容器
docker cp /opt/dataease2.0/buildfile/app-patched.jar dataease:/opt/apps/app.jar
docker restart dataease