CN111488173A - 一种离线环境下自动更新依赖包的软件开发方法与系统 - Google Patents
一种离线环境下自动更新依赖包的软件开发方法与系统 Download PDFInfo
- Publication number
- CN111488173A CN111488173A CN202010254423.1A CN202010254423A CN111488173A CN 111488173 A CN111488173 A CN 111488173A CN 202010254423 A CN202010254423 A CN 202010254423A CN 111488173 A CN111488173 A CN 111488173A
- Authority
- CN
- China
- Prior art keywords
- project
- development
- dependency
- package
- environment
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000001419 dependent effect Effects 0.000 title claims description 31
- 238000011161 development Methods 0.000 claims abstract description 119
- 230000007774 longterm Effects 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000012360 testing method Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/20—Software design
Abstract
本发明提供了一种离线环境下自动更新依赖包的软件开发方法与系统,本发明通过开发项目创建、开发环境地址配置、开发项目依赖包上传、开发项目依赖包推送以及开发项目管理,完成离线环境下的自动更新依赖包,有效的在内网离线环境中使用依赖库,避免了版本控制系统管理二进制文件,提升了多人协作开发时的拉取速度和开发效率,且节约了成本,避免进行长期维护。
Description
技术领域
本发明涉及软件开发技术领域,特别是一种离线环境下自动更新依赖包的软件开发方法与系统。
背景技术
很多开发语言,如Java、Python、JavaScript,都需要依赖库的支持,Java有maven库,Python有pypi库,而JavaScript有NPM库,另外,docker(开源的应用容器引擎)是非常流行的容器类运行环境,有docker镜像库,因此,在软件开发时,下载和使用依赖库成为必不可少的一环。
在有互联网接入的环境中,可以随时下载和使用依赖库,而离线环境下,不能直接拉取依赖库,造成依赖库使用非常困难。直接在内网搭建依赖库的镜像源是最好的办法,但公司需要长期的维护成本,为节省成本,公司一般不予提供镜像源。开发者在开发时,只能从外网环境中下载依赖库,然后打包放入GIT(开源的分布式版本控制系统)仓库进行管理,每次依赖库版本更新时,都要相应的在GIT库里进行相应的提交。而GIT不适合二进制文件的管理,每次的提交都相当于对当前版本二进制文件的一次备份。多次提交后,导致GIT代码库越来越大,多人协作开发时,严重影响开发效率,因此如何有效的在内网离线环境下使用依赖库成为亟待解决的问题。
发明内容
本发明的目的是提供一种离线环境下自动更新依赖包的软件开发方法与系统,旨在解决现有技术中在内网离线环境使用依赖库存在的成本高且效率低的问题,实现提高开发效率,节省成本。
为达到上述技术目的,本发明提供了一种离线环境下自动更新依赖包的软件开发方法,所述方法包括以下操作:
创建开发项目,并设置项目相关信息;
对所创建的开发项目配置开发环境地址;
在外网中下载开发项目依赖包,并上传依赖包至指定的依赖包目录中;
后台周期检查该项目上传的依赖包有无变动,若发现变动则通过SSH分别登录开发环境进行依赖包的更新。
优选地,所述项目相关信息包括项目名称、项目存放目录、依赖包目录以及项目依赖推送周期。
优选地,所述配置开发环境地址的配置项包括开发机器ip地址,开发机器SSH用户名和密码。
优选地,所述方法还包括开发项目管理,包括项目成员管理和开发项目依赖包管理,对项目成员以及项目依赖包进行管理。
本发明还提供了一种离线环境下自动更新依赖包的软件开发系统,所述系统包括:
项目创建模块,用于创建开发项目,并设置项目相关信息;
环境配置模块,用于对所创建的开发项目配置开发环境地址;
依赖包上传模块,用于在外网中下载开发项目依赖包,并上传依赖包至指定的依赖包目录中;
依赖包推送模块,用于后台周期检查该项目上传的依赖包有无变动,若发现变动则通过SSH分别登录开发环境进行依赖包的更新。
优选地,所述项目相关信息包括项目名称、项目存放目录、依赖包目录以及项目依赖推送周期。
优选地,所述配置开发环境地址的配置项包括开发机器ip地址,开发机器SSH用户名和密码。
优选地,所述系统还包括开发项目管理模块,用于对项目成员以及项目依赖包进行管理。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
与现有技术相比,本发明通过开发项目创建、开发环境地址配置、开发项目依赖包上传、开发项目依赖包推送以及开发项目管理,完成离线环境下的自动更新依赖包,有效的在内网离线环境中使用依赖库,避免了版本控制系统管理二进制文件,提升了多人协作开发时的拉取速度和开发效率,且节约了成本,避免进行长期维护。
附图说明
图1为本发明实施例中所提供的一种离线环境下自动更新依赖包的软件开发方法流程图;
图2为本发明实施例中所提供的一种离线环境下自动更新依赖包的软件开发系统框图。
具体实施方式
为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
下面结合附图对本发明实施例所提供的一种离线环境下自动更新依赖包的软件开发方法与系统进行详细说明。
如图1所示,本发明公开了一种离线环境下自动更新依赖包的软件开发方法,所述方法包括以下操作:
创建开发项目,并设置项目相关信息;
对所创建的开发项目配置开发环境地址;
在外网中下载开发项目依赖包,并上传依赖包至指定的依赖包目录中;
后台周期检查该项目上传的依赖包有无变动,若发现变动则通过SSH分别登录开发环境进行依赖包的更新。
本发明实施例通过用户登录认证、开发项目创建、开发环境地址配置、开发项目依赖包上传、开发项目依赖包推送以及开发项目管理,完成离线环境下的自动更新依赖包的软件开发。
用户登录认证,即通过用户名、密码登录系统,该系统是一个Web服务,提供了用户登录认证,方便不同的用户登录使用。
开发项目创建,即用户可以创建一个开发项目,创建项目时需要填入项目名称、项目存放目录、依赖包目录以及项目依赖推送周期。其中,项目名称是唯一的,否则无法区分不同的项目。项目存放目录标识了该目录在系统中的映射位置,如/home/test/project/,该目录用来存放开发项目的所有代码文件。依赖包目录为用于标识存放依赖包的目录,比如以下三个依赖包目录/home/test/project/packages/docker/、/home/test/project/packages/pypi/、/home/test/project/packages/npm/,这三个目录分别对应了docker镜像依赖目录、Python依赖包目录、JavaScript依赖包目录。项目依赖推送周期为每隔周期时间推送一个依赖包,比如1小时推送一次,推送时检查依赖包是否更改,若无更改,则不推送。
开发环境地址配置,用户对该项目进行开发环境地址配置,配置项包括开发机器ip地址,开发机器SSH(Secure Shell)用户名和密码,每个项目可以添加多个开发环境并进行配置,例如一个项目有三个开发人员,每个开发人员有自己的开发环境,那么这里可分别添加三个开发环境的地址。
开发项目依赖包上传,用户可以上传依赖包至该项目的依赖包目录中,当该项目存在多个依赖包目录时,则应明确哪个目录,如上传PyYAML-5.1.2.tar.gz至/home/test/project/packages/pypi/目录中时,由于开发环境在内网,无法连接外网,所以用户需要将开发所需依赖包从外网环境下载后上传,上传后可供开发环境使用。
开发项目依赖包推送,用户在配置完项目依赖推送周期后,系统在后台周期检查该项目上传的依赖包有无变动,包括新增和删除,若发现变动则通过SSH分别登录开发环境进行依赖包的更新。
开发项目管理,包括开发项目成员管理和开发项目依赖包管理,创建该开发项目的是项目管理员,管理员拥有项目管理权限,即管理员可以添加、删除项目成员,管理员还拥有项目依赖包管理权限,包括上传依赖包、删除依赖包,成员默认拥有开发项目依赖包的上传权限和其上传依赖包的删除权限。
本发明实施例通过开发项目创建、开发环境地址配置、开发项目依赖包上传、开发项目依赖包推送以及开发项目管理,完成离线环境下的自动更新依赖包,有效的在内网离线环境中使用依赖库,避免了版本控制系统管理二进制文件,提升了多人协作开发时的拉取速度和开发效率,且节约了成本,避免进行长期维护。
如图2所示,本发明实施例还公开了一种离线环境下自动更新依赖包的软件开发系统,所述系统包括:
项目创建模块,用于创建开发项目,并设置项目相关信息;
环境配置模块,用于对所创建的开发项目配置开发环境地址;
依赖包上传模块,用于在外网中下载开发项目依赖包,并上传依赖包至指定的依赖包目录中;
依赖包推送模块,用于后台周期检查该项目上传的依赖包有无变动,若发现变动则通过SSH分别登录开发环境进行依赖包的更新。
开发项目创建,即用户可以创建一个开发项目,创建项目时需要填入项目名称、项目存放目录、依赖包目录以及项目依赖推送周期。其中,项目名称是唯一的,否则无法区分不同的项目。项目存放目录标识了该目录在系统中的映射位置,如/home/test/project/,该目录用来存放开发项目的所有代码文件。依赖包目录为用于标识存放依赖包的目录,比如以下三个依赖包目录/home/test/project/packages/docker/、/home/test/project/packages/pypi/、/home/test/project/packages/npm/,这三个目录分别对应了docker镜像依赖目录、Python依赖包目录、JavaScript依赖包目录。项目依赖推送周期为每隔周期时间推送一个依赖包,比如1小时推送一次,推送时检查依赖包是否更改,若无更改,则不推送。
开发环境地址配置,用户对该项目进行开发环境地址配置,配置项包括开发机器ip地址,开发机器SSH(Secure Shell)用户名和密码,每个项目可以添加多个开发环境并进行配置,例如一个项目有三个开发人员,每个开发人员有自己的开发环境,那么这里可分别添加三个开发环境的地址。
开发项目依赖包上传,用户可以上传依赖包至该项目的依赖包目录中,当该项目存在多个依赖包目录时,则应明确哪个目录,如上传PyYAML-5.1.2.tar.gz至/home/test/project/packages/pypi/目录中时,由于开发环境在内网,无法连接外网,所以用户需要将开发所需依赖包从外网环境下载后上传,上传后可供开发环境使用。
开发项目依赖包推送,用户在配置完项目依赖推送周期后,系统在后台周期检查该项目上传的依赖包有无变动,包括新增和删除,若发现变动则通过SSH分别登录开发环境进行依赖包的更新。
所述系统还包括开发项目管理模块,包括开发项目成员管理和开发项目依赖包管理,创建该开发项目的是项目管理员,管理员拥有项目管理权限,即管理员可以添加、删除项目成员,管理员还拥有项目依赖包管理权限,包括上传依赖包、删除依赖包,成员默认拥有开发项目依赖包的上传权限和其上传依赖包的删除权限。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种离线环境下自动更新依赖包的软件开发方法,其特征在于,所述方法包括以下操作:
创建开发项目,并设置项目相关信息;
对所创建的开发项目配置开发环境地址;
在外网中下载开发项目依赖包,并上传依赖包至指定的依赖包目录中;
后台周期检查该项目上传的依赖包有无变动,若发现变动则通过SSH分别登录开发环境进行依赖包的更新。
2.根据权利要求1所述的一种离线环境下自动更新依赖包的软件开发方法,其特征在于,所述项目相关信息包括项目名称、项目存放目录、依赖包目录以及项目依赖推送周期。
3.根据权利要求1所述的一种离线环境下自动更新依赖包的软件开发方法,其特征在于,所述配置开发环境地址的配置项包括开发机器ip地址,开发机器SSH用户名和密码。
4.根据权利要求1所述的一种离线环境下自动更新依赖包的软件开发方法,其特征在于,所述方法还包括开发项目管理,包括项目成员管理和开发项目依赖包管理,对项目成员以及项目依赖包进行管理。
5.一种离线环境下自动更新依赖包的软件开发系统,其特征在于,所述系统包括:
项目创建模块,用于创建开发项目,并设置项目相关信息;
环境配置模块,用于对所创建的开发项目配置开发环境地址;
依赖包上传模块,用于在外网中下载开发项目依赖包,并上传依赖包至指定的依赖包目录中;
依赖包推送模块,用于后台周期检查该项目上传的依赖包有无变动,若发现变动则通过SSH分别登录开发环境进行依赖包的更新。
6.根据权利要求5所述的一种离线环境下自动更新依赖包的软件开发系统,其特征在于,所述项目相关信息包括项目名称、项目存放目录、依赖包目录以及项目依赖推送周期。
7.根据权利要求5所述的一种离线环境下自动更新依赖包的软件开发系统,其特征在于,所述配置开发环境地址的配置项包括开发机器ip地址,开发机器SSH用户名和密码。
8.根据权利要求5所述的一种离线环境下自动更新依赖包的软件开发系统,其特征在于,所述系统还包括开发项目管理模块,用于对项目成员以及项目依赖包进行管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010254423.1A CN111488173A (zh) | 2020-04-02 | 2020-04-02 | 一种离线环境下自动更新依赖包的软件开发方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010254423.1A CN111488173A (zh) | 2020-04-02 | 2020-04-02 | 一种离线环境下自动更新依赖包的软件开发方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111488173A true CN111488173A (zh) | 2020-08-04 |
Family
ID=71794578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010254423.1A Pending CN111488173A (zh) | 2020-04-02 | 2020-04-02 | 一种离线环境下自动更新依赖包的软件开发方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488173A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140208314A1 (en) * | 2013-01-24 | 2014-07-24 | International Business Machines Corporation | Automatically Propagating Updates in a Data Center |
US20150089577A1 (en) * | 2013-09-20 | 2015-03-26 | Open Text S.A. | System and method for updating downloaded applications using managed container |
CN105357318A (zh) * | 2015-12-08 | 2016-02-24 | 浪潮电子信息产业股份有限公司 | 一种内网补丁分发管理系统的设计方法 |
CN106104467A (zh) * | 2014-06-30 | 2016-11-09 | 北京新媒传信科技有限公司 | 一种自动化部署方法和终端 |
CN108897559A (zh) * | 2018-06-26 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种网络隔离下的软件升级实现系统和方法 |
CN110162332A (zh) * | 2019-05-20 | 2019-08-23 | 深圳前海微众银行股份有限公司 | 一种rn项目的构建方法及系统 |
CN110912728A (zh) * | 2019-10-11 | 2020-03-24 | 广西电网有限责任公司信息中心 | 一种操作系统补丁批量自动化更新管理方法及系统 |
CN110908703A (zh) * | 2019-10-24 | 2020-03-24 | 中国船舶重工集团公司第七0九研究所 | 一种软件包仓库按需镜像方法、装置及系统 |
-
2020
- 2020-04-02 CN CN202010254423.1A patent/CN111488173A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140208314A1 (en) * | 2013-01-24 | 2014-07-24 | International Business Machines Corporation | Automatically Propagating Updates in a Data Center |
US20150089577A1 (en) * | 2013-09-20 | 2015-03-26 | Open Text S.A. | System and method for updating downloaded applications using managed container |
CN106104467A (zh) * | 2014-06-30 | 2016-11-09 | 北京新媒传信科技有限公司 | 一种自动化部署方法和终端 |
CN105357318A (zh) * | 2015-12-08 | 2016-02-24 | 浪潮电子信息产业股份有限公司 | 一种内网补丁分发管理系统的设计方法 |
CN108897559A (zh) * | 2018-06-26 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种网络隔离下的软件升级实现系统和方法 |
CN110162332A (zh) * | 2019-05-20 | 2019-08-23 | 深圳前海微众银行股份有限公司 | 一种rn项目的构建方法及系统 |
CN110912728A (zh) * | 2019-10-11 | 2020-03-24 | 广西电网有限责任公司信息中心 | 一种操作系统补丁批量自动化更新管理方法及系统 |
CN110908703A (zh) * | 2019-10-24 | 2020-03-24 | 中国船舶重工集团公司第七0九研究所 | 一种软件包仓库按需镜像方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
陈丁: "《Java EE程序设计教程》", 31 March 2018, 西安电子科技大学出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Burns et al. | Kubernetes: up and running | |
WO2019095936A1 (zh) | 容器镜像的构建方法、系统、服务器、装置及存储介质 | |
US10419289B2 (en) | System and method for configuration management service | |
KR101831430B1 (ko) | 인프라의 설치와 구성을 자동화하는 장치 및 그 방법 | |
US9639558B2 (en) | Image building | |
CN112486547A (zh) | 多租户场景下的应用程序更新方法、装置及电子设备 | |
Bowen et al. | Apache Cookbook: Solutions and Examples for Apache Administration | |
US11144292B2 (en) | Packaging support system and packaging support method | |
Zamboni | Learning CFEngine 3: Automated system administration for sites of any size | |
CN112702195A (zh) | 网关配置方法、电子设备及计算机可读存储介质 | |
Meijer et al. | Ansible: Up and Running | |
CN111488173A (zh) | 一种离线环境下自动更新依赖包的软件开发方法与系统 | |
CN114860202A (zh) | 项目运行方法、装置、服务器及存储介质 | |
CN114860203A (zh) | 项目创建方法、装置、服务器及存储介质 | |
CN113835731A (zh) | 根据更新组件提示出错方法、装置、电子设备及存储介质 | |
Ajzele et al. | Magento 2 Developer's Guide: Harness the power of Magento 2 to extend and customize your online store | |
Mardan et al. | Getting Node. js Apps Production Ready | |
Arundel | Puppet 5 Beginner's Guide: Go from newbie to pro with Puppet 5 | |
CN105610908B (zh) | 一种基于安卓设备的samba服务实现方法及系统 | |
Uphill | Mastering Puppet | |
Kocjan et al. | Learning Nagios | |
Irtaza | IT Infrastructure Automation Using Ansible: Guidelines to Automate the Network, Windows, Linux, and Cloud Administration (English Edition) | |
Berglund | Gradle Beyond the Basics: Customizing Next-Generation Builds | |
Menga | Docker on Amazon Web Services: Build, deploy, and manage your container applications at scale | |
CN117785266A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200804 |
|
RJ01 | Rejection of invention patent application after publication |