CN112799716B - 一种代码管理方法及系统 - Google Patents
一种代码管理方法及系统 Download PDFInfo
- Publication number
- CN112799716B CN112799716B CN202110176507.2A CN202110176507A CN112799716B CN 112799716 B CN112799716 B CN 112799716B CN 202110176507 A CN202110176507 A CN 202110176507A CN 112799716 B CN112799716 B CN 112799716B
- Authority
- CN
- China
- Prior art keywords
- code
- management tool
- web page
- code management
- updating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于web的代码管理方法及系统,属于代码管理技术领域。本发明通过自建的代码管理工具从svn或git代码管理工具所管理的代码中获取并通过web页面显示不同开发模块的信息,用户通过该可视化的web页面能够对不同项目模块的代码版本进行查看、修改及配置,实现对代码版本的管理。由自建的代码管理工具获取用户在web页面选择的版本对应的代码文件;获取代码后,根据web页面的配置选项的配置以及预设的目录结构,对更新代码的目录进行扫描,如果存在需要更新的内容,将会对目标业务服务器上对应文件进行代码更新。本发明可以实现项目代码、配置文件、第三方依赖软件及脚本文件的更新,实现自动检测更新。
Description
技术领域
本发明涉及代码管理技术领域,尤其涉及一种代码管理方法及系统。
背景技术
随着产品需求的增加以及技术发展的加快,软件的版本迭代速度也随之上升,这种短时间根据用户需求进行软件更新换代的情况已成常态,同时在针对不同的客户/人群,软件也需要有对应的不同需求的版本,此时对软件的更新迭代以及,在日益增加的需求和开发时间成本的矛盾下,如何快速持续集成、测试并交付代码以及对代码版本进行管理,成为了软件开发必须要考虑的问题,当今主流的相关技术方案中,版本管理工具git和svn等工具可以帮助用户对代码版本进行管理,通过此类工具也可以进行系统版本的维护,但是操作下仅能对代码文件进行直接的替换更改,对于java等业务代码,无法满足代码编译等需求,对数据库的操作,第三方依赖软件包的更新等也需要用户另外进行操作,无法有效地节省开发人员的时间成本。
中国专利申请文献CN103729195A中,公开了一种软件版本的控制方法及系统,该方法包括,代码服务器接收到任务调度服务器发送的新运营代码或者开发机发送的新开发代码;代码服务器将新运营代码或新开发代码保存在代码版本库中,并进行相应的版本更新处理;当代码服务器接收到从任务调度服务器或开发机发送的新版本发布请求时,从代码版本库中生成最新版本的软件,并将最新版本的软件返回给任务调度服务器或开发机。后台Web服务器提供修改运营代码的页面,将新运营代码转发给任务调度服务器;后台Web服务器提供发布新版本的页面,用于向任务调度服务器发送软件发布请求;任务调度服务器向代码服务器发送新版本发布请求,并将代码服务器返回的最新版本的软件发布到前端Web服务器,完成最新版本的软件的发布、上线。任务调度服务器接收从后台Web服务器发送的请求,并将请求对应的任务发送给工作进程,请求包括:更新运营代码请求和软件发布请求;运行在所述任务调度服务器中的工作进程执行所述任务,任务包括:将新运营代码转发到代码服务器、接收代码服务器返回的最新版本的软件、将最新版本的软件发布到前端Web服务器。该方案用于软件版本发布,有任务调度服务器或开发机发送新版本发布请求,有代码服务器从代码版本库中生成最新版本的软件。整体过程基于发布请求,不能自动更新到最新代码,且代码管理还是通过git或svn软件进行,无法满足代码编译等需求。
现有技术至少存在以下不足:
1.对于java等业务代码,无法满足代码编译等需求;
2.对数据库的操作,第三方依赖软件包的更新等需要用户另外进行操作,无法有效地节省开发人员的时间成本。
3.无法通过web页面进行配置,对于不同的要求,无法自动实现代码的更新和编译。
发明内容
为解决现有技术中存在的技术问题,本发明提供了一种代码管理方法及系统,通过自建的代码管理工具从svn或git代码管理工具所管理的代码中获取不同开发模块的信息,并通过web页面显示;通过该可视化的web页面,用户能够对不同项目模块的代码版本进行查看、修改及配置,实现对代码版本的管理。由自建的代码管理工具通过git和svn等代码工具提供的api接口,获取不同版本的代码,根据用户在web页面选择的版本下载对应的代码文件;获取选中的版本代码后,获取目标业务服务器(代码运行所在的服务器),根据web页面的配置选项的配置以及预设的目录结构,对目标业务服务器上更新代码的目录进行扫描,如果目录中包含获取的代码文件,则将获取的代码文件与目标业务服务器上的文件进行对比,如果存在需要更新的内容,将会对目标业务服务器上对应文件进行代码更新,代码更新包括项目代码、配置文件及第三方依赖软件的更新,也包括对脚本文件的更新。
本发明提供了一种代码管理方法,包括:
待管理项目创建及配置:
在web页面创建项目并填写项目名称;
在web页面配置项目相关的信息及第二代码管理工具的类型,用于第一代码管理工具通过第二代码管理工具管理及更新项目代码及其配置;
项目代码及文件更新:
通过web页面选择需更新的开发模块;
根据选择的开发模块,在web页面显示的操作选项中选择相应的操作:
选择更新项目代码时:
选择需要更新的分支,根据配置的项目相关的信息,由第一代码管理工具通过第二代码管理工具更新被选择的分支的相应版本的分支代码到项目代码所在的目标业务服务器;更新到目标业务服务器前,根据配置对获取的代码进行编译或不编译;
选择更新配置文件时:
选择需更新配置文件的第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件的配置文件到目标业务服务器;
选择数据库文件更新时:
选择需更新的数据库类型,由第一代码管理工具通过第二代码管理工具更新数据库文件到目标业务服务器;
选择更新第三方依赖软件时:
进一步选择配置的任一第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件到目标业务服务器;
配置信息查询及修改:
在web页面中选择要查询或修改的开发模块,由第一代码管理工具通过第二代码管理工具获取选择的开发模块的信息,并将查询到的开发模块的信息显示在web页面中;所述开发模块的信息包括所述开发模块所在的目标业务服务器、所述开发模块的代码版本、所述开发模块的代码分支信息、所述开发模块代码提交的人员信息以及所述开发模块代码的历史修改信息;
通过web页面进行配置信息的修改,包括修改配置文件,修改环境变量,上传数据库文件、配置日志文件目录;
在web页面中配置的内容包括:项目代码目录结构信息、开发模块运行环境变量、是否自动更新、项目代码开发语言、第三方依赖软件和可编译的语言。
优选地,在web页面配置项目相关的信息及第二代码管理工具的类型包括:
在web页面配置项目代码所在目标业务服务器IP地址、端口号和项目代码目录结构信息;
在web页面配置第二代码管理工具的类型;
在web页面配置项目使用的第三方依赖软件信息及其配置文件的路径;
在web页面配置使用的数据库类型、用于访问的用户名密码及对应的数据文件地址;
在web页面配置脚本文件的路径;
在web页面配置编译获取的代码;
在web页面配置代码自动更新。
优选地,所述更新所述项目代码中编译获取的代码具体包括,获取到项目代码后,当web页面中配置编译获取的代码时,还进一步选择编译语言,调用编译工具对获取到的项目代码进行编译打包,用编译打包后的代码替换目标业务服务器中原有项目代码。
优选地,所述代码管理方法还包括:
脚本文件更新,根据配置的脚本文件的路径及代码环境变量,由第一代码管理工具通过第二代码管理工具获取相应的脚本文件,将获取的脚本文件更新到目标业务服务器上的对应目录下;
代码自动更新,根据web页面配置自动更新时,定时检测代码提交记录,在检测到分支版本存在更新时,对分支版本更新的内容进行扫描并在目标业务服务器中更新相应的内容。
优选地,所述更新所述项目代码包括:
在web页面选择需要更新的开发模块的分支;
通过web页面的选择,根据项目代码目录结构,由第一代码管理工具从第二代码管理工具所管理的开发代码中获取选中的分支代码及分支版本;
选择要更新的分支的对应版本,用该分支对应版本的代码对目标业务服务器上对应的原有项目代码直接覆盖;
重新启动更新后的项目。
优选地,所述数据库文件更新包括:
根据需要更新的数据库文件的类型及所在目录,由第一代码管理工具从第二代码管理工具所管理的开发代码中,获取需要更新的所述数据库文件,并覆盖目标业务服务器中原有数据库文件;
重新启动更新后的数据库文件。
优选地,所述更新所述第三方依赖软件包括:
根据选择的需更新的第三方依赖软件,由第一代码管理工具从第二代码管理工具所管理的开发代码中获取对应的第三方依赖软件安装包;
根据需要进行第三方依赖软件的安装或目录更新;
重新启动所述第三方依赖软件对应的服务。
本发明提供了一种基于web的代码管理系统,包括第二代码管理工具以及多个业务服务器,多个所述业务服务器上存储不同开发模块的代码,还包括:
web管理模块和第一代码管理工具;
web管理模块执行如下操作:
在web页面显示由第一代码管理工具通过第二代码管理工具获取的开发模块的信息,所述开发模块的信息包括所述开发模块所在的目标业务服务器、所述开发模块的代码版本、所述开发模块的代码分支信息、所述开发模块代码提交的人员信息以及所述开发模块代码的历史修改信息;
根据用户在web页面的选择创建项目及项目相关信息配置;
根据用户在web页面进行的配置及选择的待更新的开发模块的代码版本,控制第一代码管理工具从第二代码管理工具所管理的代码中,获取选中的版本的代码;
第一代码管理工具,执行如下操作:
根据用户在web页面选中的开发模块的代码,从所述第二代码管理工具所管理的代码中获取选中的开发模块的信息,并将获取的开发模块的信息发送给web管理模块;
接收web管理模块的指令,从第二代码管理工具所管理的代码中,获取选中的版本的代码;
根据web管理模块的自动更新代码指令,对对应的目标业务服务器进行扫描,并进行代码进行自动更新。
优选地,第一代码管理工具还执行如下操作:
接收web管理模块的指令,从第二代码管理工具所管理的代码中,获取选中的版本的代码;
调用编译工具对获取的代码进行编译,并打包;
用打包的代码替换对应的目标业务服务器上的对应的代码。
优选地,所述第二代码管理工具为git或svn代码管理工具。
与现有技术相对比,本发明的有益效果如下:
1.本发明通过web页面进行配置选项的配置,方便代码管理;
2.本发明通过自建的代码管理工具,根据用户在web页面的配置及选择待更新的开发模块,从git和svn中获取代码,对项目代码、配置文件、第三方依赖软件及脚本文件都可以进行更新,适用范围广,代码管理更方便。
3.本发明通过自己的代码管理工具,根据用户在web页面的配置,可以实现对获取的代码的编译、打包,直接由编译、打包后的项目代码替换原有项目代码,无需人工进行另外的编译操作,代码管理更方便。
附图说明
图1是本发明的一个实施例的项目创建及配置流程图;
图2是本发明的一个实施例的代码更新时直接替换原有代码的流程图;
图3是本发明的一个实施例的代码更新编译后替换原有代码的流程图;
图4是本发明的一个实施例的更新第三方依赖文件的配置文件的流程图;
图5是本发明的一个实施例的代码管理系统框图。
具体实施方式
下面结合附图1-5,对本发明的具体实施方式作详细的说明。
本发明提供了一种代码管理方法,包括:
待管理项目创建及配置:
在web页面创建项目并填写项目名称;该项目即为将通过web页面进行操作管理的项目;
在web页面配置项目相关的信息及第二代码管理工具的类型,用于第一代码管理工具通过第二代码管理工具管理及更新项目代码及其配置;
web页面上的配置,供第一代码管理工具读取,第一代码管理工具根据这些配置,可以获知与代码更新相关的信息,进行相应目录下代码或配置文件的更新;
项目代码及文件更新:
通过web页面选择需更新的开发模块;
根据选择的开发模块,在web页面显示的操作选项中选择相应的操作:
选择更新项目代码时:
选择需要更新的分支,根据配置的项目相关的信息,由第一代码管理工具通过第二代码管理工具更新被选择的分支的相应版本的分支代码到项目代码所在的目标业务服务器;更新到目标业务服务器前,根据配置对获取的代码进行编译或不编译;
选择更新配置文件时:
选择需更新配置文件的第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件的配置文件到目标业务服务器;
选择数据库文件更新时:
选择需更新的数据库类型,由第一代码管理工具通过第二代码管理工具更新数据库文件到目标业务服务器;
选择更新第三方依赖软件时:
进一步选择配置的任一第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件到目标业务服务器;
配置信息查询及修改:
在web页面中选择要查询或修改的开发模块,由第一代码管理工具通过第二代码管理工具获取选择的开发模块的信息,并将查询到的开发模块的信息显示在web页面中;所述开发模块的信息包括所述开发模块所在的目标业务服务器、所述开发模块的代码版本、所述开发模块的代码分支信息、所述开发模块代码提交的人员信息以及所述开发模块代码的
历史修改信息;
显示开发模块所在的目标业务服务器信息是为了方便开发人员区分此版本所对应的代码是运行在哪个服务器上;
通过web页面进行配置信息的修改,包括修改配置文件,修改环境变量,上传数据库文件、配置日志文件目录;
在web页面中配置的内容包括:项目代码目录结构信息、开发模块运行环境变量、是否自动更新、项目代码开发语言、第三方依赖软件和可编译的语言。
在本发明中,与用户的操作交互是通过web页面,web前端通过代码实现web页面,具体实现web页面与用户的交互,获取上传文件等功能;web后端通过代码实现项目代码及文件的更新,包括文件对比,文件操作,脚本配置等;
作为优选实施方式,在web页面配置项目相关的信息及第二代码管理工具的类型包括:
在web页面配置项目代码所在目标业务服务器IP地址、端口号和项目代码目录结构信息,这些信息将用于对代码进行定位及对代码进行更新操作;
在web页面配置第二代码管理工具的类型,根据第二代码管理工具的类型,比如,svn或git,调用不同的第二代码管理工具的api接口,用于更新代码的获取;
在web页面配置项目使用的第三方依赖软件信息及其配置文件的路径,用于在对应目录下更新第三方依赖软件的配置文件,不同第三方依赖软件对应不同的配置文件,路径也会不同;
在web页面配置使用的数据库类型、用于访问的用户名密码及对应的数据文件地址,用于在对应目录下更新数据库文件;
在web页面配置脚本文件的路径,用于更新对应目录下的脚本文件;
在web页面配置编译获取的代码,用户设置编译获取的代码后,会在获取代码之后自动对获取的代码进行编译,然后用编译打包后的代码替换原有代码;
在web页面配置代码自动更新,用户设置代码自动更新后,会定时检测代码提交记录,检测到有最新代码后,自动进行相应代码的更新。
作为优选实施方式,所述更新所述项目代码中编译获取的代码具体包括,获取到项目代码后,当web页面中配置编译获取的代码时,还进一步选择编译语言,调用编译工具对获取到的项目代码进行编译打包,用编译打包后的代码替换目标业务服务器中原有项目代码。现有的代码管理工具,都不能自动进行编译,对于java等业务代码,无法满足代码编译的需求,需要客户更新代码后,再另外使用编译工具进行编译打包,较为繁琐,本发明根据用户在web页面的设置,可以在获取到代码后自动进行编译打包,大大减少了开发人员的工作量。
作为优选实施方式,所述代码管理方法还包括:
脚本文件更新,根据配置的脚本文件的路径及代码环境变量,由第一代码管理工具通过第二代码管理工具获取相应的脚本文件,将获取的脚本文件更新到目标业务服务器上的对应目录下;通过脚本文件的更新,可以根据待更新代码运行需要使用的脚本文件,使得代码更新可以顺序进行。
代码自动更新,根据web页面配置自动更新时,定时检测代码提交记录,在检测到分支版本存在更新时,对分支版本更新的内容进行扫描并在目标业务服务器中更新相应的内容。
作为优选实施方式,所述更新所述项目代码包括:
在web页面选择需要更新的开发模块的分支;
通过web页面的选择,根据项目代码目录结构,由第一代码管理工具从第二代码管理工具所管理的开发代码中获取选中的分支代码及分支版本;
选择要更新的分支的对应版本,用该分支对应版本的代码对目标业务服务器上对应的原有项目代码直接覆盖;
重新启动更新后的项目。
作为优选实施方式,所述数据库文件更新包括:
根据需要更新的数据库文件的类型及所在目录,由第一代码管理工具从第二代码管理工具所管理的开发代码中,获取需要更新的所述数据库文件,并覆盖目标业务服务器中原有数据库文件;
重新启动更新后的数据库文件。
作为优选实施方式,所述更新所述第三方依赖软件包括:
根据选择的需更新的第三方依赖软件,由第一代码管理工具从第二代码管理工具所管理的开发代码中获取对应的第三方依赖软件安装包;
根据需要进行第三方依赖软件的安装或目录更新;
重新启动所述第三方依赖软件对应的服务。
本发明提供了一种基于web的代码管理系统,包括第二代码管理工具以及多个业务服务器,多个所述业务服务器上存储不同开发模块的代码,还包括:
web管理模块和第一代码管理工具;
web管理模块执行如下操作:
在web页面显示由第一代码管理工具通过第二代码管理工具获取的开发模块的信息,所述开发模块的信息包括所述开发模块所在的目标业务服务器、所述开发模块的代码版本、所述开发模块的代码分支信息、所述开发模块代码提交的人员信息以及所述开发模块代码的历史修改信息;
根据用户在web页面的选择创建项目及项目相关信息配置;
根据用户在web页面进行的配置及选择的待更新的开发模块的代码版本,控制第一代码管理工具从第二代码管理工具所管理的代码中,获取选中的版本的代码;
第一代码管理工具,执行如下操作:
根据用户在web页面选中的开发模块的代码,从所述第二代码管理工具所管理的代码中获取选中的开发模块的信息,并将获取的开发模块的信息发送给web管理模块;
接收web管理模块的指令,从第二代码管理工具所管理的代码中,获取选中的版本的代码;
根据web管理模块的自动更新代码指令,对对应的目标业务服务器进行扫描,并进行代码进行自动更新。
作为优选实施方式,第一代码管理工具还执行如下操作:
接收web管理模块的指令,从第二代码管理工具所管理的代码中,获取选中的版本的代码;
调用编译工具对获取的代码进行编译,并打包;
用打包的代码替换对应的目标业务服务器上的对应的代码。
作为优选实施方式,所述第二代码管理工具为git或svn代码管理工具。作为优选实施方式,所述第一代码管理工具为git或svn代码管理工具。
实施例1
参照附图1-5,根据本发明的一个具体实施方案,下面对本发明代码管理方法进行详细说明。
本发明提供了一种代码管理方法,包括:
待管理项目创建及配置:
在web页面创建项目并填写项目名称;
在web页面配置项目相关的信息及第二代码管理工具的类型,用于第一代码管理工具通过第二代码管理工具管理及更新项目代码及其配置;
在web页面配置项目相关的信息及第二代码管理工具的类型包括:
在web页面配置项目代码所在目标业务服务器IP地址、端口号和项目代码目录结构信息;
在web页面配置第二代码管理工具的类型;
在web页面配置项目使用的第三方依赖软件信息及其配置文件的路径;
在web页面配置使用的数据库类型、用于访问的用户名密码及对应的数据文件地址;
在web页面配置脚本文件的路径;
在web页面配置编译获取的代码;
在web页面配置代码自动更新。
项目代码及文件更新:
通过web页面选择需更新的开发模块;
根据选择的开发模块,在web页面显示的操作选项中选择相应的操作:
选择更新项目代码时:
选择需要更新的分支,根据配置的项目相关的信息,由第一代码管理工具通过第二代码管理工具更新被选择的分支的相应版本的分支代码到项目代码所在的目标业务服务器;更新到目标业务服务器前,根据配置对获取的代码进行编译或不编译;
所述更新所述项目代码具体包括:
在web页面选择需要更新的开发模块的分支;
通过web页面的选择,根据项目代码目录结构,由第一代码管理工具从第二代码管理工具所管理的开发代码中获取选中的分支代码及分支版本;
选择要更新的分支的对应版本,用该分支对应版本的代码对目标业务服务器上对应的原有项目代码直接覆盖;
重新启动更新后的项目。
编译获取的代码具体包括,获取到项目代码后,当web页面中配置编译获取的代码时,还进一步选择编译语言,调用编译工具对获取到的项目代码进行编译打包,用编译打包后的代码替换目标业务服务器中原有项目代码。
选择更新配置文件时:
选择需更新配置文件的第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件的配置文件到目标业务服务器;
选择数据库文件更新时:
选择需更新的数据库类型,由第一代码管理工具通过第二代码管理工具更新数据库文件到目标业务服务器;
所述数据库文件更新包括:
根据需要更新的数据库文件的类型及所在目录,由第一代码管理工具从第二代码管理工具所管理的开发代码中,获取需要更新的所述数据库文件,并覆盖目标业务服务器中原有数据库文件;
重新启动更新后的数据库文件。
选择更新第三方依赖软件时:
进一步选择配置的任一第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件到目标业务服务器;
所述更新所述第三方依赖软件包括:
根据选择的需更新的第三方依赖软件,由第一代码管理工具从第二代码管理工具所管理的开发代码中获取对应的第三方依赖软件安装包;
根据需要进行第三方依赖软件的安装或目录更新;
重新启动所述第三方依赖软件对应的服务。
配置信息查询及修改:
在web页面中选择要查询或修改的开发模块,由第一代码管理工具通过第二代码管理工具获取选择的开发模块的信息,并将查询到的开发模块的信息显示在web页面中;所述开发模块的信息包括所述开发模块所在的目标业务服务器、所述开发模块的代码版本、所述开发模块的代码分支信息、所述开发模块代码提交的人员信息以及所述开发模块代码的历史修改信息;
通过web页面进行配置信息的修改,包括修改配置文件,修改环境变量,上传数据库文件、配置日志文件目录;
所述代码管理方法还包括:
脚本文件更新,根据配置的脚本文件的路径及代码环境变量,由第一代码管理工具通过第二代码管理工具获取相应的脚本文件,将获取的脚本文件更新到目标业务服务器上的对应目录下;
代码自动更新,根据web页面配置自动更新时,定时检测代码提交记录,在检测到分支版本存在更新时,对分支版本更新的内容进行扫描并在目标业务服务器中更新相应的内容。
在web页面中配置的内容包括:项目代码目录结构信息、开发模块运行环境变量、是否自动更新、项目代码开发语言、第三方依赖软件和可编译的语言。
实施例2
参照附图1,根据本发明的一个具体实施方案,下面对本发明代码管理方法中通过web页面进行的配置进行详细说明。
用户通过web页面用于添加项目的选项创建新项目,在web页面填入该项目的名称,项目所在目标业务服务器的IP地址、端口以及项目代码目录信息,用于系统对代码进行定位及操作更新;如,目标业务服务器的IP地址为198.162.132.6,端口号为88,项目代码目录信息包括:根目录的路径,/Pro_STAD,在项目根目录下,设各级子目录,子目录以开发模块进行命名。
用户通过web页面选择第二代码管理工具的类型,预设可选的类型包括git或者svn,用于更新代码的获取;比如,用户此时选择的第二代码管理工具的类型为svn,则之后更新代码或文件时,都通过svn的api接口,将通过svn获取的代码文件传到目标业务服务器;
用户通过web页面提示的可选第三方依赖软件,添加该项目使用的第三方依赖软件及其配置文件的目录,用于系统更新配置文件;比如,选择第三方依赖软件为supervisor,其配置文件的目录为/etc/supervisor.d/;
用户通过web页面提示的可选择使用的数据库类型选择数据库类型,在web页面输入用于访问数据库的用户名密码及对应的数据库文件地址,比如选择MySQL数据库,数据库类型可以包括任何常用的数据库,用户名包括该项目的开发人员的用户名及密码,用于更新数据库文件。
实施例3
参照附图2,根据本发明的一个具体实施方案,下面对本发明代码管理方法中代码更新时直接替换原有代码的流程进行详细说明。
用户在web页面选择要更新的代码后,第一代码管理工具通过MySQL数据库获取到用户配置的A项目的代码对应的代码管理工具为git,web后台会通过对应的git的地址获取到用户选择的开发模块的各分支信息,在web页面展示给用户;
用户在选择要更新的代码版本后,在web页面中还可以进一步选择更新方式为上传更新;
用户通过web页面选择要更新的分支后,第一代码管理工具通过git的调用api接口获取git上保管的该分支代码,将获取的代码的zip格式压缩文件进行上传,上传到web服务所在服务器临时目录下,替换后将删除,将获取的zip格式的最新代码的压缩文件解压,将解压后的代码对A项目所在的服务器上的代码进行替换操作,执行重启命令对项目代码进行重启。
实施例4
参照附图3,根据本发明的又一个具体实施方案,下面对本发明代码管理方法中代码更新编译后替换原有代码的流程进行详细说明。
用户选择更新代码后,在web页面的预设的语言选项中选择编译语言,需要更新的第三方依赖软件名称及版本,web后台通过数据库获取到用户配置的A项目的代码对应的代码管理工具为git,web后台会通过对应的git的地址获取到分支信息,展示给用户;
Web页面填写的业务数据会与代码关联存在在web页面的数据库中,主要是存储web的业务数据;
用户选择更新的分支后,通过调用git提供的api接口获取git上保管的代码,根据用户配置的第三方依赖软件名称和版本下载第三方依赖文件,无异常返回后,会根据用户选择的编译语言,利用配置好的编译环境对获取的代码进行编译,编译完成后,将编译后的代码文件覆盖到目标服务器对应的目录上,并执行配置的重启命令对系统代码进行重启。
业务代码运行不仅依托于代码本身,还需要依托一些第三方依赖包,因此代码更新还需要先下载第三方依赖文件,下载的方式通过linux系统自带的应用管理器的yum/apt-get等方法下载,python.java语言的第三方依赖则通过格子的第三方依赖下载软件如pip,maven来下载;后台更新的程序会捕捉安装过程返回的信息中是否有错误提示。
实施例5
参照附图4,根据本发明的又一个具体实施方案,下面对本发明代码管理方法中更新第三方依赖文件的配置文件的流程进行详细说明。
用户通过web页面选择要更新的分支后,第一代码管理工具通过MySQL数据库获取到用户配置的A项目的代码对应的代码管理工具为git,web后台会通过对应的git的地址获取到用户选择的开发模块的各分支信息,在web页面展示给用户;用户在选择要更新的代码版本后,在web页面中还可以进一步选择更新方式为上传更新;
用户通过web页面选择要更新的分支后,第一代码管理工具通过git的调用api接口获取git上保管的该分支代码,将获取的zip格式的最新代码的压缩文件解压,将解压后的代码的conf目录进行读取(此目录为约定的代码目录格式中包含),查阅web数据库获取该项目次第三方以来的配置文件所在目录,将配置文件上传至目标服务器指定目录并覆盖源文件。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化,不同实施例之间可以相互结合。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。
Claims (10)
1.一种代码管理方法,其特征在于,包括:
待管理项目创建及配置:
在web页面创建项目并填写项目名称;
在web页面配置项目相关的信息及第二代码管理工具的类型,用于第一代码管理工具通过第二代码管理工具管理及更新项目代码及其配置;
项目代码及文件更新:
通过web页面选择需更新的开发模块;
根据选择的开发模块,在web页面显示的操作选项中选择相应的操作:
选择更新项目代码时:
选择需要更新的分支,根据配置的项目相关的信息,由第一代码管理工具通过第二代码管理工具更新被选择的分支的相应版本的分支代码到项目代码所在的目标业务服务器;更新到目标业务服务器前,根据配置对获取的代码进行编译或不编译;
选择更新配置文件时:
选择需更新配置文件的第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件的配置文件到目标业务服务器;
选择数据库文件更新时:
选择需更新的数据库类型,由第一代码管理工具通过第二代码管理工具更新数据库文件到目标业务服务器;
选择更新第三方依赖软件时:
进一步选择配置的任一第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件到目标业务服务器;
配置信息查询及修改:
在web页面中选择要查询或修改的开发模块,由第一代码管理工具通过第二代码管理工具获取选择的开发模块的信息,并将查询到的开发模块的信息显示在web页面中;所述开发模块的信息包括所述开发模块所在的目标业务服务器、所述开发模块的代码版本、所述开发模块的代码分支信息、所述开发模块代码提交的人员信息以及所述开发模块代码的历史修改信息;
通过web页面进行配置信息的修改,包括修改配置文件,修改环境变量,上传数据库文件、配置日志文件目录;
在web页面中配置的内容包括:项目代码目录结构信息、开发模块运行环境变量、是否自动更新、项目代码开发语言、第三方依赖软件和可编译的语言。
2.根据权利要求1所述的代码管理方法,其特征在于,在web页面配置项目相关的信息及第二代码管理工具的类型包括:
在web页面配置项目代码所在目标业务服务器IP地址、端口号和项目代码目录结构信息;
在web页面配置第二代码管理工具的类型;
在web页面配置项目使用的第三方依赖软件信息及其配置文件的路径;
在web页面配置使用的数据库类型、用于访问的用户名密码及对应的数据文件地址;
在web页面配置脚本文件的路径;
在web页面配置编译获取的代码;
在web页面配置代码自动更新。
3.根据权利要求2所述的代码管理方法,其特征在于,所述更新所述项目代码中编译获取的代码具体包括,获取到项目代码后,当web页面中配置编译获取的代码时,还进一步选择编译语言,调用编译工具对获取到的项目代码进行编译打包,用编译打包后的代码替换目标业务服务器中原有项目代码。
4.根据权利要求2所述的代码管理方法,其特征在于,还包括:
脚本文件更新,根据配置的脚本文件的路径及代码环境变量,由第一代码管理工具通过第二代码管理工具获取相应的脚本文件,将获取的脚本文件更新到目标业务服务器上的对应目录下;
代码自动更新,根据web页面配置自动更新时,定时检测代码提交记录,在检测到分支版本存在更新时,对分支版本更新的内容进行扫描并在目标业务服务器中更新相应的内容。
5.根据权利要求2所述的代码管理方法,其特征在于,所述更新所述项目代码包括:
在web页面选择需要更新的开发模块的分支;
通过web页面的选择,根据项目代码目录结构,由第一代码管理工具从第二代码管理工具所管理的开发代码中获取选中的分支代码及分支版本;
选择要更新的分支的对应版本,用该分支对应版本的代码对目标业务服务器上对应的原有项目代码直接覆盖;
重新启动更新后的项目。
6.根据权利要求2所述的代码管理方法,其特征在于,所述数据库文件更新包括:
根据需要更新的数据库文件的类型及所在目录,由第一代码管理工具从第二代码管理工具所管理的开发代码中,获取需要更新的所述数据库文件,并覆盖目标业务服务器中原有数据库文件;
重新启动更新后的数据库文件。
7.根据权利要求2所述的代码管理方法,其特征在于,所述更新所述第三方依赖软件包括:
根据选择的需更新的第三方依赖软件,由第一代码管理工具从第二代码管理工具所管理的开发代码中获取对应的第三方依赖软件安装包;
根据需要进行第三方依赖软件的安装或目录更新;
重新启动所述第三方依赖软件对应的服务。
8.一种基于web的代码管理系统,包括第二代码管理工具以及多个业务服务器,多个所述业务服务器上存储不同开发模块的代码,其特征在于,使用权利要求1-7任一项所述的代码管理方法,还包括:
web管理模块、第一代码管理工具和数据库;
web管理模块执行如下操作:
在web页面显示由第一代码管理工具通过第二代码管理工具获取的开发模块的信息,所述开发模块的信息包括所述开发模块所在的目标业务服务器、所述开发模块的代码版本、所述开发模块的代码分支信息、所述开发模块代码提交的人员信息以及所述开发模块代码的历史修改信息;
根据用户在web页面的选择创建项目及项目相关信息配置;
根据用户在web页面进行的配置及选择的待更新的开发模块的代码版本,控制第一代码管理工具从第二代码管理工具所管理的代码中,获取选中的版本的代码;
将用户在web页面进行的配置存储在数据库;
第一代码管理工具,执行如下操作:
根据数据库中存储的用户在web页面选中的开发模块的代码,从所述第二代码管理工具所管理的代码中获取选中的开发模块的信息,并将获取的开发模块的信息发送给web管理模块;
接收web管理模块的指令,从第二代码管理工具所管理的代码中,获取选中的版本的代码;
根据web管理模块的自动更新代码指令,对对应的目标业务服务器进行扫描,并对代码进行自动更新;
接收web管理模块的指令,根据需更新配置文件的第三方依赖软件,通过第二代码管理工具更新选择的第三方依赖软件的配置文件到目标业务服务器;
接收web管理模块的指令,根据需更新的数据库类型,通过第二代码管理工具更新数据库文件到目标业务服务器;
接收web管理模块的指令,根据所选择的配置的任一第三方依赖软件,由第一代码管理工具通过第二代码管理工具更新选择的第三方依赖软件到目标业务服务器。
9.根据权利要求8所述的代码管理系统,其特征在于,第一代码管理工具还执行如下操作:
接收web管理模块的指令,从第二代码管理工具所管理的代码中,获取选中的版本的代码;
选择编译语言,调用编译工具对获取的代码进行编译,并打包;
用打包的代码替换对应的目标业务服务器上的对应的代码。
10.根据权利要求8所述的代码管理系统,其特征在于,所述第二代码管理工具为git或svn代码管理工具。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110176507.2A CN112799716B (zh) | 2021-02-09 | 2021-02-09 | 一种代码管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110176507.2A CN112799716B (zh) | 2021-02-09 | 2021-02-09 | 一种代码管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799716A CN112799716A (zh) | 2021-05-14 |
CN112799716B true CN112799716B (zh) | 2022-04-01 |
Family
ID=75814878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110176507.2A Active CN112799716B (zh) | 2021-02-09 | 2021-02-09 | 一种代码管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799716B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360170B (zh) * | 2021-06-21 | 2023-11-17 | 福建天晴在线互动科技有限公司 | 一种动态更新工具不同版本的方法及其系统 |
CN113687858B (zh) * | 2021-08-05 | 2024-04-19 | 深圳须弥云图空间科技有限公司 | 配置文件的检查方法、装置、电子设备及存储介质 |
CN113821249A (zh) * | 2021-09-18 | 2021-12-21 | 挂号网(杭州)科技有限公司 | 项目开发配置的方法、装置、电子设备和可读存储介质 |
CN115016834A (zh) * | 2022-04-21 | 2022-09-06 | 中银金融科技有限公司 | 一种基于版本管理工具的项目开发进度自动管控方法及系统 |
CN115390879B (zh) * | 2022-09-14 | 2023-12-22 | 安徽长江工业大数据科技股份公司 | 一种通过node构建实时管理umi项目代码的方法 |
CN115629746B (zh) * | 2022-12-22 | 2023-03-17 | 西安葡萄城软件有限公司 | 一种低代码平台多人协同开发的方法及系统 |
CN115951929B (zh) * | 2022-12-28 | 2024-03-19 | 广州宇中网络科技有限公司 | 一种第三方库源代码管理方法 |
CN117707609B (zh) * | 2024-02-06 | 2024-04-30 | 云账户技术(天津)有限公司 | 一种基于容器编排管理工具管理脚本任务的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729195A (zh) * | 2014-01-15 | 2014-04-16 | 北京奇虎科技有限公司 | 一种软件版本的控制方法及系统 |
CN109597644A (zh) * | 2018-12-05 | 2019-04-09 | 江苏风云科技服务有限公司 | 项目部署方法及装置 |
CN111078265A (zh) * | 2019-11-28 | 2020-04-28 | 上海三零卫士信息安全有限公司 | 一种基于jenkins的web项目更新补丁生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101443A1 (en) * | 2004-10-25 | 2006-05-11 | Jim Nasr | Source code management system and method |
-
2021
- 2021-02-09 CN CN202110176507.2A patent/CN112799716B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729195A (zh) * | 2014-01-15 | 2014-04-16 | 北京奇虎科技有限公司 | 一种软件版本的控制方法及系统 |
CN109597644A (zh) * | 2018-12-05 | 2019-04-09 | 江苏风云科技服务有限公司 | 项目部署方法及装置 |
CN111078265A (zh) * | 2019-11-28 | 2020-04-28 | 上海三零卫士信息安全有限公司 | 一种基于jenkins的web项目更新补丁生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112799716A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112799716B (zh) | 一种代码管理方法及系统 | |
CN111142903B (zh) | 一种基于文件对比的配置文件交互式更新方法及装置 | |
CN107577469B (zh) | 一种软件打包发布管理方法 | |
US9542175B2 (en) | Continuous deployment | |
US7356816B2 (en) | Method and apparatus for multiplatform migration | |
US9063725B2 (en) | Portable management | |
US8443347B2 (en) | Translating declarative models | |
WO2019000627A1 (zh) | 软件定制服务器、方法、程序及计算机可读存储介质 | |
KR20000070089A (ko) | 소프트웨어 갱신 매니저 | |
CN115480801A (zh) | 一种基于Vue框架的多项目开发部署运行方法和系统 | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
CN116755713A (zh) | 应用程序的生成方法、装置、设备及存储介质 | |
CN110795139A (zh) | 客户端批量打包方法、装置、计算机设备和存储介质 | |
CN110647349B (zh) | 一种实现iOS APP持续交付的方法 | |
CN107678969B (zh) | 测试版本发布方法、装置、版本控制设备和测试机 | |
CN112363728A (zh) | 一种支持持续集成构建的跨平台编译方法及系统 | |
CN116643761A (zh) | 一种定制化镜像制作及部署方法、装置、终端及介质 | |
CN115878154A (zh) | 一种容器镜像版本的升级系统及方法 | |
CN111580853A (zh) | 多渠道软件安装包通用生成方法 | |
CN114265595B (zh) | 一种基于智能合约的云原生应用开发与部署系统和方法 | |
CN113110872B (zh) | 一种Android自动化配置构建平台及操作方法 | |
CN108881338B (zh) | 网络功能虚拟化镜像文件升级的方法及装置 | |
CN113704664A (zh) | 生成用于访问页面的路由地址的方法和装置 | |
CN113469740A (zh) | 广告数据获取方法、装置、设备及存储介质 | |
CN113434554A (zh) | 持续集成流水线的构建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |