master分支是最新正式发布的O2OA稳定版源码,经过详细测试,编译后可在生产环境使用。
develop_java8
O2OA已经升级到java11版本,为了兼容希望坚持使用java8版本的用户,我们创建了此分支,它与develop分支的更新内容保持一致。如果希望O2OA功能保持最新,但又要使用java8的用户,可以使用此分支编译服务器。
master_java8
最后发布的java8稳定版,版本6.2.2。不再更新了,需要Java8版本的可以使用
develop_java8分支。
如果你需要历史版本的源码,可以切换到对应的tag。(打开标签)
建议您先Fork源码到您自己的空间。
然后进入自己fork的仓库,复制克隆地址:
首先我们确保我们自己的机器上安装了git工具,如果没有的话:
centos使用命令:
yuminstall-ygit
Ubuntu使用命令:
sudoapt-getinstallgit
然后我们进入自己机器需要获取源码的目录,启动终端或使用gitbash,输入以下命令clone源码:
红色部分替换为你自己Fork的仓库地址。如:
clone完成后,就可以看到O2OA的源码目录了。
获取了源码后,我们就可以将源码编译为可运行的O2OA服务器了。
在编译源码之前,我们需要准备编译环境,O2OA编译需要以下环境:
Node.js
编译脚本运行环境,14.0.0以上版本
(建议使用Node.jsv16LTS,v17及以上版本的可能会报错)
jdk
根据您要编译的分支,决定使用JDK8或者是JDK11(推荐)
maven
3.6及以上版本
上述环境安装,在此就不赘述了。
环境准备好后,我们打开终端或windows的命令行提示符,进入O2OA源码目录。默认情况先,现在是主分支,就是master分支,通过以下git命令检查分支
gitstatus
切换到您需要的分支后,需要先使用npm安装编译脚本所需要的依赖包,使用以下命令安装:(安装过程可能需要几分钟)
npminstall
如果没有安装过gulp和jsdoc,需要先执行以下命令安装:
npminstall-ggulp-clinpminstall-gjsdoc然后就可以使用以下命令编译了:
npmrunbuild_ci
整个编译过程大概需要30分钟。编译完成后,会在目录下生成target/o2server目录,这就是可运行的服务器目录。可以将它拷贝到服务器,运行相应start_xxx命令就可以运行O2OA了。这个等会编译完成后,我们再看。
如果编译的过程中出现下图错误,可通过修改maven源来解决
编译特定操作系统版本的O2OA
如果我们要编译指定操作系统版本的O2OA,可以使用以下命令:
方法一:没有下载JVM和依赖包commons
如果您没有手工下载JVM和依赖包commons,也没有关系,我们可以使用“build_ci:xxx”命令:
推荐是使用此方式编译,这样可以保证编译程序找到合适的commons版本
#编译windows版本npmrunbuild_ci:win#编译linuxx86版本npmrunbuild_ci:linux#编译aix版本npmrunbuild_ci:aix#编译linuxarm版本npmrunbuild_ci:arm#编译windows版本npmrunbuild_ci:macos#编译linuxmips版本npmrunbuild_ci:mips#编译树莓派版本npmrunbuild_ci:rpi
编译脚本功能清单
编译脚本的功能清单如下:
命令
运行
说明
build_ci
编译源码,自动下载JVM和依赖包,并构建可以运行在所有支持的操作系统的服务器。
build_ci:xxx
npmrunbuild_ci:win
npmrunbuild_ci:linux
npmrunbuild_ci:aix
npmrunbuild_ci:arm
npmrunbuild_ci:macos
npmrunbuild_ci:mips
npmrunbuild_ci:rpi
编译源码,自动下载指定操作系统环境的JVM和依赖包,并构建可以运行在指定操作系统的服务器。
build
npmrunbuild
预先下载JVM和依赖包,并放到o2server目录,
编译源码,构建可以运行在所有支持的操作系统的服务器。
build:xxx
npmrunbuild:win
npmrunbuild:linux
npmrunbuild:aix
npmrunbuild:arm
npmrunbuild:macos
npmrunbuild:mips
npmrunbuild:rpi
编译源码,构建可以运行在指定操作系统的服务器。
build_server
npmrunbuild_server
单独编译O2OA服务端
build_web
npmrunbuild_web
单独编译O2OAWeb端
build_api
npmrunbuild_api
生成O2OA脚本API文档
趁服务器编译的过程,我们简单介绍一下源码文件结构。(打开gitee项目主页)
更目录下主要文件和目录:
o2android/
将在后续App编译课程中详细介绍
o2ios/
o2server/
服务端源码目录
o2web/
Web端源码目录
Jenkins*
Jenkins流水线文件,我们在持续发布流程中的流水线文件,
build.xml
maven打包文件
gulpfile.js
打包脚本文件
...
略
o2_core/
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脚本代码
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目录展示,通过命令可以启动服务器: