第二章 开发环境搭建与工具链

说实话,很多做OA二次开发的朋友,上来就急着写代码。我见过太多人,环境没配好就开始改代码,结果折腾半天发现是JDK版本不对。嗯,这一章咱们就把这些基础工作一次性搞定。

2.1 JDK配置:选对版本很重要

OA系统大多基于Java开发,JDK配置是第一道坎。我个人习惯用JDK 8或11,这两个版本在OA生态里最稳定。你想想看,很多老牌OA系统比如泛微、致远,它们的底层还是JDK 8为主。

注意:千万别用JDK 17以上的版本去跑老系统。我曾经在一个项目里直接上了JDK 17,结果系统启动报了一堆模块化相关的错误,折腾了两天才降回来。

配置步骤其实很简单:

  1. 下载JDK(推荐Oracle JDK或AdoptOpenJDK)
  2. 设置JAVA_HOME环境变量
  3. 把%JAVA_HOME%/bin加到Path里
  4. 命令行输入java -version验证

这里有个小技巧:我习惯在系统里同时装多个JDK版本,通过切换JAVA_HOME来快速切换。比如开发OA用JDK 8,测试新功能时切到JDK 11。

2.2 Maven/Gradle构建工具

OA系统的二次开发,说白了就是不断加模块、改依赖。没有构建工具?那简直是噩梦。我推荐用Maven,原因很简单——OA生态里大部分开源组件都用Maven管理。

Maven的核心配置

先看一个典型的pom.xml:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.oa</groupId>
  <artifactId>oa-custom</artifactId>
  <version>1.0-SNAPSHOT</version>
  
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.3.20</version>
    </dependency>
  </dependencies>
</project>

这里要注意的是依赖版本冲突。我在项目中遇到过好几次,OA系统自带的Spring版本和我们要引入的第三方库版本不兼容。解决办法是:用mvn dependency:tree查看依赖树,手动排除冲突项。

我的建议:在pom.xml里统一管理版本号,用<properties>标签定义。这样升级版本时改一处就行。

Gradle的配置

如果你更喜欢Gradle,那配置更简洁。不过说实话,OA二次开发用Gradle的团队不多。我个人的经验是:如果团队里都是老Java开发者,用Maven;如果团队年轻化,Gradle更合适。

plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework:spring-core:5.3.20'
}

2.3 Git版本控制

做OA二次开发,Git是保命工具。你想想看,改错了代码、删错了文件,没有版本控制怎么回滚?

我建议的Git工作流是这样的:

  • master分支:只放稳定版本,不能直接在上面改代码
  • develop分支:日常开发的主分支
  • feature分支:每个新功能建一个分支,开发完合并到develop
  • hotfix分支:紧急修复用,修完合并到master和develop

我曾经犯过一个错误:直接在master上改代码,结果改到一半发现思路不对,想回退却发现已经提交了好几次。从那以后,我再也不敢在master上直接改代码了。

常用的Git命令:

# 克隆OA系统源码
git clone http://git.oa.com/oa-system.git

# 创建新分支
git checkout -b feature/add-leave-module

# 提交代码
git add .
git commit -m "feat: 新增请假模块"

# 合并到develop
git checkout develop
git merge feature/add-leave-module

2.4 本地开发环境与测试服务器部署

本地开发环境,说白了就是让你的电脑能跑起OA系统。我一般这样配:

组件 推荐版本 说明
JDK 1.8 或 11 看OA系统要求
数据库 MySQL 5.7 或 8.0 OA系统大多用MySQL
应用服务器 Tomcat 8.5 或 9 轻量级,适合本地调试
IDE IntelliJ IDEA 或 Eclipse 看个人习惯

部署到测试服务器时,我习惯用脚本自动化:

#!/bin/bash
# 部署脚本示例

# 1. 停止旧服务
systemctl stop tomcat

# 2. 备份旧包
cp /opt/tomcat/webapps/oa.war /opt/backup/oa_$(date +%Y%m%d).war

# 3. 复制新包
cp target/oa.war /opt/tomcat/webapps/

# 4. 启动服务
systemctl start tomcat

# 5. 查看日志
tail -f /opt/tomcat/logs/catalina.out
注意:测试服务器的数据库配置一定要和本地分开。我见过有人把测试环境的数据库配成了生产库,结果测试数据污染了生产数据,那叫一个惨。

嗯,到这里开发环境就搭好了。下一章咱们开始真正动手,写第一个OA二次开发的模块。记住,环境搭好了,后面才能顺风顺水。

最后说一句:环境搭建看起来简单,但每个细节都可能坑你一把。我建议你搭完环境后,先跑一遍OA系统自带的示例功能,确认一切正常再开始开发。