metasfresh开源ERP系统Windows开发环境配置参考

news2025/1/13 9:26:21

目录

概述

开发环境

配置过程

后端启动

前端启动

登陆系统

其他


概述

Compiere闭源之后衍生出了Admpiere等若干开源的产品,metasfresh就是其中之一,metasfresh截至发稿时在GitHub上已有64000多次的修改提交,而且仍在维护中,其中5.175版本于23年6月分发布,具体可参考metasfresh的Github站点。

metasfres平台架构上采用了前后端分离的方式,前端js,可以单独部署,后端java+spring,可提供轻量端的web方式访问和传统的swing客户端方式访问,不同访问方式根据后端的服务类型来确定。

metasfres在与其他类型的java语言为主的erp项目相比,配置上还是有些复杂,这里就根据metasfresh社区提供的安装说明(参考:Development environment guide with Intellij and Docker-Compose - Setup - metasfresh ERP - Community forum)对配置过程中遇到的问题及解决方法进行了记录,供metasfresh爱好者参考。

开发环境

操作系统:Windows11

IDE工具:IDEA 2024 Ultimate

Java:jdk8(5.175分支),jdk17(master分支),maven3

Nodejs:16(测试版本过高,前端启动后接受请求时会报错)

RabbitMQ :3.11.16(可参考社区安装配置链接中使用docker来提供)

PostgreSQL:10(可参考社区安装配置链接中使用docker来提供)

配置过程

  • 代码下载,git项目源码到本地,这里需要注意的是目录规划,metasfresh开发环境的目录规划应当是:

       projectroot(假定你准备在这里完成metasfresh开发环境的配置)

            +.idea(idea项目文件夹,idea自动生成)

            +-----metasfresh(git到这一层

            +----application.properties(metasfresh子目录\misc\dev-support下复制过来的配置文件目录)  

  • 启动idea打开projectroot目录,然后退出(此步仅完成idea的项目目录的生成),将metasfresh\misc\dev-support\intellij-idea目录下的.idea下 的内容复制到projectroot下的idea中(覆盖原有内容)
  • 修改或复制本机maven配置文件,将metasfresh\misc\dev-support\maven下的settings.xml复制到本机的maven默认目录中(Windows,默认在%userprofile%\.m2)覆盖或者自行合并内容。主要是以下的xml节点,合并是可根据本地文件内容进行修改,同时注意在<activeProfiles>节点将此内容添加,否则不会生效:
    <id>env-dev</id>
     
  • 打开命令行终端,确定java_home环境变量以及git可执行文件路径已经配置到命令行终端环境中,可通过查看。
    java -version
    mvn -v
    git -v
    
  • 执行maven安装,在命令行顺序切换到metasfresh\misc\parent-pom,metasfresh\misc\de-metas-common,metasfresh\backend,执行maven安装:
    mvn -T 2C -DskipTests clean install

    安装过程中如果出现如下错误,则需要调整metasfresh\misc\parent-pom\pom.xml,在git-commit-id-plugin插件的configuration配置项中增加nativeGitTimeoutInMs,插件默认的是30000毫秒,也就是30秒,将这个值设置的更大些,就不会报下面的错误了:

  • 再次启动idea,首先检查项目的jdk版本是否与source的版本匹配,分别选择metasfresh\backend\pom.xml以及metasfresh\misc\parent-pom\pom.xml,metasfresh\misc\de-metas-common\pom.xml,在选中文件右键菜单中选择“添加为Maven项目”,等待加载完成即可。
  • idea中选择backend项目的pom.xml,执行maven菜单的generate source and folder(生成源码和目录),子项目中如果存在找不到类的错误,可以选择对应子项目的pom.xml单独生成,如果未出现找不到类错误,可忽略此步。
  • metasfresh的前端配置比较简单,在命令行切换到metasfresh\frontend,执行npm install即可,如果遇到依赖错误,则在命令行中增加--legacy-peer-deps参数
  • 建立数据库用户metasfresh/metasfresh(默认的,如果不同则需要修改application.properties下的相关文件,开发环境简化处理均使用默认的)导入初始数据。初始下载链接(https://metasfresh.com/wp-content/releases/db_seeds/metasfresh_latest.pgdump)。
  • idea中执行Run SQL Migrations运行配置

后端启动

  • 启动RabbitMQ(如果RabbitMQ 的服务端口不是5672,需要修改projectroot\application.properties\metasfresh\backend\metasfresh-webui-api\application.properties,将spring.rabbitmq.port设置为实际的端口)。
  • idea中启动WebRestApiApplication,启动前检查配置参数中 -DPropertyFile路径,由于从metasfresh\misc\dev-support\intellij-idea目录拷贝的配置中,默认使用的路径是C:\work-metas,因此需要修改为实际的路径。另外,开发环境可不使用elastic search,需要增加vm参数-Delastic_enable=false。

前端启动

  • 复制metasfresh\config.js.dist到metasfresh\config.js
  • 可通过idea中的start WEB-UI启动项启动或者通过命令行终端启动

登陆系统

  • 通过:http://localhost:3000/,默认用户名,密码均为metasfresh,这里需要注意地址不能是127.0.0.1,否则会报跨域错误,如果希望通过ip访问,则需要修改metasfresh\config.js以及数据库中的记录,select * from AD_SysConfig WHERE Name='webui.frontend.url',即数据库中的值需要与metasfresh\config.js一致才不会报跨域错误,这个值是数据系统配置的参数,可以通过swing端访问修改,也可以直接修改数据库记录

其他

        metasfresh的swing端访问,在idea中分别启动ServerBoot和SwingUIApplication即可,登陆用户同轻量端。

        metasfresh本地化处理可登陆管理员权限,导出多语言文件(xml格式),翻译后再执行导入(还未经测试)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3-cropperjs图片裁剪工具-用户上传图片截取-(含预览视频)

效果图 上传图片弹窗预览 对于这个上传图片样式可以参考 官方原代码 官网传送入口 Upload 上传 | Element Plus (element-plus.org) <template><el-uploadclass"upload-demo"dragaction"https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6…

使用label-studio对OCR数据进行预标注

导读 label-studio作为一款数据标注工具相信大家都不陌生&#xff0c;对于需要进行web数据标注协同来说应该是必备工具了&#xff0c;标注的数据类型很全涉及AI的各个任务(图像、语音、NLP、视频等)&#xff0c;还支持自定义涉及模版。 然而&#xff0c;我们在标注数据的过程…

【简单讲解下Fine-tuning BERT,什么是Fine-tuning BERT?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

<Python><ffmpeg>基于python使用PyQt5构建GUI实例:音频格式转换程序(MP3/aac/wma/flac)(优化版2)

前言 本文是基于python语言使用pyqt5来构建的GUI,功能是使用ffmpeg来对音频文件进行格式转换,如mp3、aac、wma、flac等音乐格式。 UI示例: 环境配置 系统:windows 平台:visual studio code 语言:python 库:pyqt5、ffmpeg 概述 本文是建立在之前的博文的基础上的优化版…

Linux多进程和多线程(二)-进程间通信-管道用法

进程间通信 关于多进程的通信管道无名管道(匿名管道)创建无名管道示例:创建子进程,父进程通过管道向子进程发送消息无名管道(匿名管道) 的特点 有名管道(命名管道) 创建有名管道需要调⽤ mkfifo() 函数示例:创建两个没有关联关系的进程,通过有名管道通信 注意: 缺点优点 关于判…

烧结刚玉砂轮片 磨具用晶谷低温陶瓷结合剂玻璃粉

晶谷CBN 砂轮磨具用低温陶瓷结合剂玻璃粉的一些特点如下&#xff1a; - 软化点&#xff1a;通常为450~650度&#xff1b; - 膨胀系数&#xff1a;50~12010-7&#xff1b; - 粒径&#xff1a;300~3000目&#xff08;可按要求订做&#xff09;&#xff1b; - 外观颜色&#xff…

6. 较全的Open3D点云数据处理(python)

注意&#xff1a;以下内容来自博客爆肝5万字❤️Open3D 点云数据处理基础&#xff08;Python版&#xff09;_python 点云 焊缝-CSDN博客&#xff0c;这篇博客写的全且详细&#xff0c;在这里是为了记笔记方便查看&#xff0c;并非抄袭。 1.点云的读写 代码如下&#xff1a; …

使用Perplexity打造产品的27种方式

ChatGPT和Perplexity等聊天机器人正迅速成为产品经理的首选助手。以下是一份全面的指南&#xff0c;介绍PM如何在日常工作中使用Perplexity&#xff0c;该指南基于300多份回复和30次电话后的总结。 理解并制定增长战略&#xff1a;例如&#xff0c;解释增长会计的基本原理&…

什么是 Elasticsearch 数据预热?

引言&#xff1a;在现代的信息检索和数据分析领域&#xff0c;Elasticsearch 已经成为一个广泛应用的分布式搜索和分析引擎。作为开源项目的一部分&#xff0c;Elasticsearch 提供了强大的实时搜索和分析能力&#xff0c;使得处理大规模数据变得更加高效和可靠。然而&#xff0…

MySQL高级-MVCC-undo log 版本链

文章目录 1、undo log2、undo log 版本链2.1、然后&#xff0c;有四个并发事务同时在访问这张表。2.1.1、修改id为30记录&#xff0c;age改为32.1.2、修改id为30记录&#xff0c;name改为A32.1.3、修改id为30记录&#xff0c;age改为10 2.2、总结 1、undo log 回滚日志&#xf…

运行vue : 无法加载文件 C:\Program Files\nodejs\node_global\vue.ps1,因为在此系统上禁止运行脚本。

报错背景: 重装了win10系统,然后准备安装Vue,这个时候我已经安装好了node.js和npm,输入node -v和npm -v都有正确输出,但是每次输入npm install -g vue/cli 安装的时候,就会报错. 大家安装node.js的时候最好就是默认路径(C:\Program Files\nodejs),别去修改不然很多报错.(个人…

Ubuntu网络管理命令:netstat

安装Ubuntu桌面系统&#xff08;虚拟机&#xff09;_虚拟机安装ubuntu桌面版-CSDN博客 顾名思义&#xff0c;netstat命令不是用来配置网络的&#xff0c;而是用来查看各种网络信息的&#xff0c;包括网络连接、路由表以及网络接口的各种统计数据等。 netstat命令的基本语法如…

3-linux命令行与基本命令

目录 什么是shell linux命令 命令组成 几个简单的命令 linux文件系统导航 什么是shell linux学习路径&#xff1a;学习shell→配置和环境→见任务和主要工具→编写shell脚本 shell是一个接收由键盘输入的命令&#xff0c;并将其传递给操作系统来执行的程序。几乎所有…

Coursera耶鲁大学金融课程:Financial Markets 笔记Week 03

Financial Markets 本文是学习 https://www.coursera.org/learn/financial-markets-global这门课的学习笔记 这门课的老师是耶鲁大学的Robert Shiller https://en.wikipedia.org/wiki/Robert_J._Shiller Robert James Shiller (born March 29, 1946)[4] is an American econom…

cookie 的获取过程

#第一次请求过程 浏览器第一次发送请求时,不会携带任何cookie信息 服务器接收到请求之后&#xff0c;发现请求中没有任何cookie信息 服务器生成和设置一个cookie.并将此cookie设置通过set_cookie的首部字段保存在响应报文中返回给浏 览器 浏览器接收到这个响应报文之后,发现里…

windows 本地ES 7.11.0 版本集群搭建

1.先下载JDK &#xff0c;建议下载JDK11. 2.下载ES Windows安装包 7.11.0下载 3.下载完成后&#xff0c;在本地解压三份&#xff0c;分别取名 node1,node2,node3 4.若启动一直报端口占用&#xff0c;这修改 每个文件夹下bin/elasticsearch.bat文件&#xff0c;没有则跳过 在…

电商平台数据爬取经验分享

一、引言 在电商领域&#xff0c;数据的重要性不言而喻。无论是市场趋势分析、竞争对手研究&#xff0c;还是用户行为洞察&#xff0c;都离不开数据的支持。而数据爬虫作为获取这些数据的重要工具&#xff0c;其技术的掌握和运用对于电商平台来说至关重要。本文将结合个人实际…

Stateflow快速入门系列(-):构造并运行 Stateflow 图

Stateflow 提供了一种图形语言&#xff0c;包括状态转移图、流程图、状态转移表和真值表。您可以使用 Stateflow 来说明 MATLAB 算法和 Simulink 模型如何响应输入信号、事件和基于时间的条件。 Stateflow 使您能够设计和开发监控、任务调度、故障管理、通信协议、用户界面和混…

昇思MindSpore学习笔记7--函数式自动微分

摘要&#xff1a; 介绍了昇思MindSpore神经网络训练反向传播算法中函数式自动微分的使用方法和步骤。包括构造计算函数和神经网络、grad获得微分函数&#xff0c;以及如何处理停止渐变、获取辅助数据等内容。 一、概念要点 神经网络训练主要使用反向传播算法&#xff1a; 准备…

学习平台推荐_菜鸟教程官网

网址&#xff1a; 菜鸟教程 - 学的不仅是技术&#xff0c;更是梦想&#xff01;菜鸟教程(www.runoob.com)提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python&#xff0c;Java&#xff0c;Ruby&#xff0c;C&#xff0c;PHP , MySQL等各种编程语言的基础知识。 同…