技术文章

当前位置: 首页> 帮助手册> 技术文章

Java全开源O2OA开发平台源码编译教程

时间:2022-03-22   

    

获取源码

O2OA是全开源的系统,完整的源码可以免费从gitee或者codechina获取。仓库地址是:

gitee: https://gitee.com/o2oa/O2OA.git

codechina: https://codechina.csdn.net/O2OA/o2oa.git


gitee仓库

我们打开gitee上的 O2OA仓库,可以看到源码:(操作:浏览器打开项目仓库主页)

(操作:展开分支)

我们来介绍一下几个主要有的分支:

develop

这是主分支,也是我们的开发分支,它有最新的源码,每天都会有大量的提交,最新的功能也会在此分支上。但它没有经过详细的测试,可能会有比较多的bug,适合希望了解 O2OA最新更新和希望研究源码的用户,但不建议在生产环境使用它。

master

master分支是最新正式发布的O2OA稳定版源码,经过详细测试,编译后可在生产环境使用。

develop_java8

O2OA已经升级到java11版本,为了兼容希望坚持使用java8版本的用户,我们创建了此分支,它与develop分支的更新内容保持一致。如果希望O2OA功能保持最新,但又要使用java8的用户,可以使用此分支编译服务器。

master_java8

最后发布的java8稳定版,版本6.2.2。不再更新了,需要Java8版本的可以使用

develop_java8分支。

如果你需要历史版本的源码,可以切换到对应的tag。(打开标签)

克隆源码

建议您先Fork源码到您自己的空间。

然后进入自己fork的仓库,复制克隆地址:

首先我们确保我们自己的机器上安装了git工具,如果没有的话:

windows系统可以到下面的地址下载: https://git-scm.com/download/win

centos使用命令:

yum install -y git

Ubuntu使用命令:

sudo apt-get install git

然后我们进入自己机器需要获取源码的目录,启动终端或使用git bash,输入以下命令clone源码:

git clone https://xxxxx

红色部分替换为你自己Fork的仓库地址。如:

git clone https://gitee.com/hq1980/O2OA.git

clone完成后,就可以看到O2OA的源码目录了。

编译源码

获取了源码后,我们就可以将源码编译为可运行的O2OA服务器了。

准备编译环境

在编译源码之前,我们需要准备编译环境,O2OA编译需要以下环境:

Node.js

编译脚本运行环境,14.0.0以上版本

jdk

根据您要编译的分支,决定使用jdk8 或者是 jdk11

maven

3.6及以上版本,建议maven配置设置阿里云的源

上述环境安装,在此就不赘述了。

切换到要编译的分支

环境准备好后,我们打开终端或windows的命令行提示符,进入O2OA源码目录。默认情况先,现在是主分支,就是develop分支,如果我们需要编译其它分支,通过以下git命令切换,如切换到master分支:

git checkout master

编译

切换到您需要的分支后,需要先使用npm安装编译脚本所需要的依赖包,使用以下命令安装:(安装过程可能需要几分钟)

npm install

如果没有安装过gulp和jsdoc,需要先执行以下命令安装:

npm install -g gulp-cli
npm install -g jsdoc

然后就可以使用以下命令编译了:

npm run build_ci

整个编译过程大概需要30分钟。编译完成后,会在目录下生成target/o2server目录,这就是可运行的服务器目录。可以将它拷贝到服务器,运行相应start_xxx命令就可以运行O2OA了。这个等会编译完成后,我们再看。


优化编译

等待编译过程中,我们可以先介绍一下不同的编译命令,以及优化编译速度。

编译特定操作系统版本的O2OA

如果我们要编译指定操作系统版本的O2OA,可以使用以下命令:

#编译windows版本
npm run build_ci:win

#编译linux x86版本
npm run build_ci:linux
                
#编译aix版本
npm run build_ci:aix

#编译linux arm版本
npm run build_ci:arm

#编译windows版本
npm run build_ci:macos

#编译linux mips版本
npm run build_ci:mips

#编译树莓派版本
npm run build_ci:rpi


编译脚本功能清单

编译脚本的功能清单如下:

命令

运行

说明

build_ci

npm run build_ci

编译源码,自动下载JVM和依赖包,并构建可以运行在所有支持的操作系统的服务器。

build_ci:xxx

npm run build_ci:win

npm run build_ci:linux

npm run build_ci:aix

npm run build_ci:arm

npm run build_ci:macos

npm run build_ci:mips

npm run build_ci:rpi

编译源码,自动下载指定操作系统环境的JVM和依赖包,并构建可以运行在指定操作系统的服务器。

build_server

npm run build_server

单独编译O2OA服务端

build_web

npm run build_web

单独编译O2OA Web端

build_api

npm run build_api

生成O2OA脚本API文档


源码文件结构解析

趁服务器编译的过程,我们简单介绍一下源码文件结构。(打开gitee项目主页)

更目录下主要文件和目录:

o2android/

android端App源码,已经迁移到 https://gitee.com/o2oa/o2oa-android 仓库中

将在后续App编译课程中详细介绍

o2ios/

ios端App源码,已经迁移到 https://gitee.com/o2oa/o2oa-ios 仓库中

将在后续App编译课程中详细介绍

o2server/

服务端源码目录

o2web/

Web端源码目录

Jenkins*

Jenkins流水线文件,我们在持续发布流程中的流水线文件,

build.xml

maven打包文件

gulpfile.js

打包脚本文件

...

o2web目录结构说明

前端的源码都放置在o2web目录,其中代码部分都在o2web/source/目录下,其他一些是相关的配置和打包脚本文件,所以我们简单介绍一下o2web/source/目录的内容

o2_core/

O2OA前端的平台的核心代码,如一些用户认证相关,平台框架相关,服务请求相关的脚本代码。

o2_lib/

O2OA前端会引用到,或者可能会引用到的第三方框架或功能组件,如vue、mootools、ckeditor、echarts等

x_component_xxxxx

每个x_component开头的目录就是一个O2OA平台的一个应用,如:

x_component_Org-是组织管理应用;

x_component_portal_Portal - 是展现门户的应用;

x_component_process_TaskCenter - 是待办中心应用;

x_component_Meeting - 是会议管理应用;

……

o2_desktop

主要放置各种html文件,以及载入前端应用的loader脚本代码

o2server目录结构说明

configSample/

存放config的配置样例,在变异过程中会根据注解自动生成默认配置文件.

localSample/

存放local目录的配置文件,目前只有节点标识文件node.cfg.

x_console/

目录存放的是启动的主程序.

x_*_core_entity/

实体类项目.编译后打包成jar.

x_*_assemble_control

业务装配模块,最终向前端提供业务服务.

x_*_service_*/

后台服务模块,仅对其他模块提供服务,不向前端开放.

console_*.sh

控制台进入脚本.

restart_*.sh

服务器重启脚本

service_windows.bat

将服务器作为windows服务的生成脚本.

start_*.sh

服务器启动脚本.

stop_*.sh

服务器停止脚本.

此时服务器应该编译打包完成,打开源码的target/o2server目录展示,通过命令可以启动服务器:

windows系统运行:start_windows.bat

x86的linux系统运行: start_linux.sh

arm的linux系统运行: start_arm.sh

等等。


上一篇: 系统安装-平台服务器下载及安装部署 For Linux Server(适用于O2OA V7.2之前的版本)

下一篇: How to start?

深圳SEO优化公司张掖网站建设设计推荐双龙网站优化多少钱黑河网站建设设计多少钱大同网站改版哪家好吉祥网络营销大连网络营销公司昭通网站搭建公司淮北百度竞价包年推广哪家好永新网站优化按天计费哪家好兰州网页设计多少钱成都建网站哪家好伊犁外贸网站建设哪家好铜仁营销网站哪家好林芝建设网站报价漳州推广网站推荐榆林网站优化按天计费推荐运城seo网站推广报价和田营销型网站建设报价盐城设计公司网站推荐光明seo优化哪家好大庆网站开发哪家好辽阳企业网站制作推荐同乐seo优化多少钱宝鸡网站seo优化多少钱湘西模板推广大芬高端网站设计价格保山品牌网站设计公司海北SEO按天收费多少钱通化网站优化推广重庆网站seo优化公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化