CN114327580A - 基于软件仓库的管理方法、系统、设备及存储介质 - Google Patents
基于软件仓库的管理方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN114327580A CN114327580A CN202111353097.0A CN202111353097A CN114327580A CN 114327580 A CN114327580 A CN 114327580A CN 202111353097 A CN202111353097 A CN 202111353097A CN 114327580 A CN114327580 A CN 114327580A
- Authority
- CN
- China
- Prior art keywords
- analysis
- project
- software
- product library
- product
- 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
Images
Abstract
本发明提供了基于软件仓库的管理方法、系统、设备及存储介质,其中,方法包括:获取软件项目的相关信息;读取软件项目对应的源代码和配置文件进行第一次分析;读取项目对应的配置文件进行第二次分析;根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表;自制品库名称列表中择一配置创建制品库。本发明能够对各种代码库进行分析,自动地确定制品的类型和制品部署的环境进行规范化命名,避免了用户手工输入或者手工选择造成的输入错误,降低用户使用的难度,提升了用户体验。
Description
技术领域
本发明涉及软件管理领域,具体地说,涉及基于软件仓库的管理方法、系统、设备及存储介质。
背景技术
在软件开发过程中,每个项目采用的编程语言各不相同,各个项目最终产生的制品和存放制品的仓库也各不相同,例如:java项目的maven 仓库、python项目的pypi仓库、golang项目的go仓库、采用容器技术发布的项目制品的docker仓库等等。而且,同一个项目的不同环境所部署的制品也不相同,在开发环境中部署的是最新开发的代码构建出来的制品;在预生产环境中部署的是经过充分测试准备发布的制品;在生产环境中部署的是经过多个环境多轮测试,确保无误的最终制品。
因此同一个项目的不同部署环境也需要严格区分不同的制品仓库。一个成熟的软件企业需要一套制品仓库统一管理各个项目组生产的制品。有必要在一个制品仓库系统中管理多项目多类型多环境的制品库。在现实中,多项目多类型多环境的制品库命名管理并不规范,不规范的命名导致后续的制品库管理配置,难以利用各种正则表达式实现统一便捷的配置管理。而统一的软件制品仓库需要多种不同类型的制品,目前一些软件制品仓库支持的制品类型达到数十种,每种制品的配置项各不相同,制品库配置复杂,普通用户使用的学习成本非常高。
有鉴于此,本发明提供了一种基于软件仓库的管理方法、系统、设备及存储介质。
需要说明的是,上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
针对现有技术中的问题,本发明的目的在于提供基于软件仓库的管理方法、系统、设备及存储介质,克服了现有技术的困难,能够对各种代码库进行分析,自动地确定制品的类型和制品部署的环境进行规范化命名。
本发明的实施例提供一种基于软件仓库的管理方法,包括以下步骤:
获取软件项目的相关信息;
读取软件项目对应的源代码和配置文件进行第一次分析;
读取项目对应的配置文件进行第二次分析;
根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表;
自所述制品库名称列表中择一配置创建制品库。
优选地,所述获取软件项目的相关信息,包括:
获取软件项目的相关信息,当所述软件项目为主项目时,所述相关信息至少包括软件项目名称、软件项目对应的代码仓库地址;
当所述软件项目为子项目时,所述相关信息至少包括软件项目名称、项目路径、软件项目对应的代码仓库地址。
优选地,所述读取软件项目对应的源代码和配置文件进行第一次分析,包括:
读取软件项目对应的源代码和配置文件,分析项目所采用的编程语言及所采用的发布技术,所述分析至少包括:基于源代码文件名后缀分析确定所采用的编程语言、基于项目依赖配置文件分析确定所采用的编程语言及发布技术以及基于项目构建脚本文件分析中的至少一种。
优选地,所述读取项目对应的配置文件进行第二次分析,包括:
所述读取项目对应的配置文件,分析项目所涉及的部署环境,所述分析至少包括:项目启动配置文件分析、部署配置文件分析中的至少一种。
优选地,所述根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表,包括:
根据所述读取软件项目对应的源代码和配置文件的分析结果以及所述读取项目对应的配置文件的部署环境分析结果,匹配预设的制品库模板。
优选地,所述根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表,包括:
根据所述第一次分析获得一第一类名称;
根据所述第二次分析获得一第二类名称;
遍历所述预设规则中的制品库名称列表,获得同时具备所述第一类名称和第二类名称的制品库名称;
收集所述制品库名称生成所述制品库名称列表。
优选地,所述自所述制品库名称列表中则一配置创建制品库,包括:
反馈可选的制品库名称及默认的制品库配置;
接收用户选择制品库的指令;
根据所述用户选择的制品库名称配置创建制品库。
优选地,所述制品库模板包括了名称生成规则,采用自动的方式生成制品库的名称,预设管理制品库名称。
优选地,所述自所述制品库名称列表中择一配置创建制品库之后,还包括:
检测访问所述制品库的用户的权限标签,所述权限标签中至少包含预设的第一类名称集合中的至少一个第一类名称和预设的第二类名称集合中至少一个第二类名称;
判断所述权限标签是否同时满足所述制品库名称所包含的第一类名称和第二类名称时,若是,则允许该用户访问所述制品库,若否,则拒绝该用户访问所述制品库。
本发明的实施例还提供一种基于软件仓库的管理系统,用于实现上述的基于软件仓库的管理方法,所述基于软件仓库的管理系统包括:
信息获取模块,获取软件项目的相关信息;
第一次分析模块,读取软件项目对应的源代码和配置文件进行第一次分析;
第二次分析模块,读取项目对应的配置文件进行第二次分析;
名称生成模块,根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表;
制品库配置模块,自所述制品库名称列表中择一配置创建制品库。
本发明的实施例还提供一种基于软件仓库的管理设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述基于软件仓库的管理方法的步骤。
本发明的实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述基于软件仓库的管理方法的步骤。
本发明的目的在于提供基于软件仓库的管理方法、系统、设备及存储介质,能够对各种代码库进行分析,自动地确定制品的类型和制品部署的环境进行规范化命名,避免了用户手工输入或者手工选择造成的输入错误,降低用户使用的难度,提升了用户体验。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明的基于软件仓库的管理方法的一种实施例的流程图。
图2是本发明的基于软件仓库的管理方法的另一种实施例的流程图。
图3是本发明的基于软件仓库的管理方法的实施过程示意图。
图4是本发明的基于软件仓库的管理系统的一种实施例的模块示意图。
图5是本发明的基于软件仓库的管理系统的另一种实施例的模块示意图。
图6是本发明的基于软件仓库的管理系统的另一种实施例的模块示意图。
图7是本发明的基于软件仓库的管理系统运行的示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本申请所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用系统,本申请中的各项细节也可以根据不同观点与应用系统,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面以附图为参考,针对本申请的实施例进行详细说明,以便本申请所属技术领域的技术人员能够容易地实施。本申请可以以多种不同形态体现,并不限定于此处说明的实施例。
在本申请的表示中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的表示意指结合该实施例或示例表示的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,表示的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本申请中表示的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于表示目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的表示中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了明确说明本申请,省略与说明无关的器件,对于通篇说明书中相同或类似的构成要素,赋予了相同的参照符号。
在通篇说明书中,当说某器件与另一器件“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种器件“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素排除在外,而是意味着可以还包括其它构成要素。
当说某器件在另一器件“之上”时,这可以是直接在另一器件之上,但也可以在其之间伴随着其它器件。当对照地说某器件“直接”在另一器件“之上”时,其之间不伴随其它器件。
虽然在一些实例中术语第一、第二等在本文中用来表示各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一接口及第二接口等表示。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
此处使用的专业术语只用于言及特定实施例,并非意在限定本申请。此处使用的单数形态,只要语句未明确表示出与之相反的意义,那么还包括复数形态。在说明书中使用的“包括”的意义是把特定特性、区域、整数、步骤、作业、要素及/或成份具体化,并非排除其它特性、区域、整数、步骤、作业、要素及/或成份的存在或附加。
虽然未不同地定义,但包括此处使用的技术术语及科学术语,所有术语均具有与本申请所属技术领域的技术人员一般理解的意义相同的意义。普通使用的字典中定义的术语追加解释为具有与相关技术文献和当前提示的内容相符的意义,只要未进行定义,不得过度解释为理想的或非常公式性的意义。
图1是本发明的基于软件仓库的管理方法的一种实施例的流程图。如图1所示,本发明的基于软件仓库的管理方法,包括:
S110、获取软件项目的相关信息。
S120、读取软件项目对应的源代码和配置文件进行第一次分析,其中,第一次分析主要涉及分析项目对应的源代码和配置文件。在计算机科学领域,源代码(也称源程序),是指一系列人类可读的计算机语言指令。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。配置文件(英语:configuration file)是一种计算机文件,可以为一些计算机程序配置参数和初始设置。
S130、读取项目对应的配置文件进行第二次分析,其中,第二次分析主要涉及分析项目所涉及的部署环境。其中,部署环境是指指进行软件项目部署时所需要或者所处于的一系列硬件、软件环境的统称,常见的有计算机处理器、内存、硬盘、操作系统及版本、操作权限、数据库及版本、容器、集群、所依赖的镜像等;部署环境对部署工作形成了约束要求或限制,在开展软件部署工作时,需要考察部署环境并制定合理的部署方式和方法。
S140、根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表。本发明中的预设规则需要根据第一次分析的结果对应的第一类标签(名称)以及第二次分析的结果对应的第二类标签(名称),来共同获得制品库名称,从而使得制品库名称能够满足第一次分析和第二次分析的共同结果。
S150、自制品库名称列表中择一配置创建制品库。
本发明主要使用于DevOps云计算领域,属于新兴信息技术应用。 DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。
可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。传统的软件组织将开发、IT运营和质量保障设为各自分离的部门。在这种环境下如何采用新的开发方法(例如敏捷软件开发),这是一个重要的课题:按照从前的工作方式,开发和部署不需要IT支持或者QA深入的、跨部门的支持,而却需要极其紧密的多部门协作。然而 DevOps考虑的还不止是软件部署。它是一套针对这几个部门间沟通与协作问题的流程和方法。需要频繁交付的企业可能更需要对DevOps有一个大致的了解。Flickr发展了自己的DevOps能力,使之能够支撑业务部门“每天部署10次”的要求──如果一个组织要生产面向多种用户、具备多样功能的应用程序,其部署周期必然会很短。这种能力也被称为持续部署,并且经常与精益创业方法联系起来。从2009年起,相关的工作组、专业组织和博客快速涌现。
DevOps的引入能对产品交付、测试、功能开发和维护(包括──曾经罕见但如今已屡见不鲜的──“热补丁”)起到意义深远的影响。在缺乏DevOps能力的组织中,开发与运营之间存在着信息“鸿沟”──例如运营人员要求更好的可靠性和安全性,开发人员则希望基础设施响应更快,而业务用户的需求则是更快地将更多的特性发布给最终用户使用。这种信息鸿沟就是最常出问题的地方。
本系统创建的制品仓库名称,符合规范化的命名规则,可以在后续的制品库权限控制、制品库事件订阅管理等方面提供更灵活丰富的配置方式。本系统,本方法通过智能化的分析项目的代码和环境配置,智能匹配模板软件制品库模板,自动生成了制品库的配置信息,降低用户使用的难度,提升了用户体验。
图2是本发明的基于软件仓库的管理方法的另一种实施例的流程图。如图2所示,该基于软件仓库的管理方法,在图1实施例中步骤S110、 S120、S130、S140、S150的基础上,通过S121替换了步骤S120,通过S131替换了步骤S130,通过S141、S142、S143、S144替换了步骤S140,通过S151、S152、S153替换了步骤S150,通过S161、S162 替换了步骤S160,在步骤S140之后增加了步骤S161、S162,以下针对每个步骤进行说明:
S110、获取软件项目的相关信息。
S121、读取软件项目对应的源代码和配置文件,分析项目所采用的编程语言及所采用的发布技术。
S131、读取项目对应的配置文件,分析项目所涉及的部署环境,部署环境的分析技术。
S141、读取软件项目对应的源代码和配置文件,分析项目所采用的编程语言及所采用的发布技术,分析技术至少包括:基于源代码文件名后缀分析确定所采用的编程语言、基于项目依赖配置文件分析确定所采用的编程语言及发布技术以及基于项目构建脚本文件分析中的至少一种,从而通过第一次分析获得一第一类名称。
S142、根据第二次分析获得一第二类名称。读取项目对应的配置文件,分析项目所涉及的部署环境,部署环境的分析技术,分析技术至少包括:项目启动配置文件分析、部署配置文件分析中的至少一种,从而通过第二次分析获得一第二类名称。
S143、根据读取软件项目对应的源代码和配置文件的分析结果以及读取项目对应的配置文件的部署环境分析结果,匹配预设的制品库模板,获得同时具备第一类名称和第二类名称的制品库名称。制品库模板包括了名称生成规则,采用自动的方式生成制品库的名称,预设管理制品库名称。
S144、收集制品库名称生成制品库名称列表。
S151、反馈可选的制品库名称及默认的制品库配置。
S152、接收用户选择制品库的指令。
S153、根据用户选择的制品库名称配置创建制品库。
S161、检测访问制品库的用户的权限标签,权限标签中至少包含预设的第一类名称集合中的至少一个第一类名称和预设的第二类名称集合中至少一个第二类名称。(可以通过包含大量第一类名称的第一类名称集合来实现,关于第一类名称可以根据实际需要预设很多中,用户根据工作需要,被配置其中的至少一个。同样地,通过包含大量第二类名称的第二类名称集合来实现,关于第二类名称可以根据实际需要预设很多中,用户根据工作需要,被配置其中的至少一个。)
S162、判断权限标签是否同时满足制品库名称所包含的第一类名称和第二类名称时,若是,则允许用户访问制品库,若否,则拒绝用户访问制品库。通过步骤S161和S162能够实现各类用户访问软件制品库时的精确权限控制,使得不同工作组或是不同项目开发组的用户能够只访问到自己需要的软件制品库的局部软件。这种权限标签检测的模式不同于以往将用户进行简单级别定义的模式,而是将用户本身的项目属性来定制权限标签(发开的项目类型以及项目的使用场景),这样用户能精确地访问的与自己工作相关的软件库内容,而不会看到其他发开小组的项目,实现了软件发开组之间的系统隔离。而且,整个过程都是通过本发明的方法提醒自动完成,避免了人为介入对每个软件进行区别的成本,大大提升了整体开发效率。
与现有技术相比,其具有以下优点和效果:
1、自动化:本技术支持对各种代码库进行分析,自动地确定制品的类型和制品部署的环境。
2、易用性:无需用户手工输入或者手工选择。避免了用户手工输入或者手工选择造成的输入错误,降低用户使用的难度,提升了用户体验。
3、本方法创建的制品仓库名称,符合规范化的命名规则,可以在后续的制品库权限控制、制品库事件订阅管理等方面提供更灵活丰富的配置方式。
图3是本发明的基于软件仓库的管理方法的实施过程示意图。如图3所示,本发明的一种具体实施过程如下:
S1、获取项目的相关信息。包括项目名称(如果是子项目,需要完整的项目路径)、项目对应的代码仓库地址等信息;
S2、“制品类型分析模块”读取项目对应的源代码和配置文件,分析项目所采用的编程语言及所采用的发布技术。所采用的分析技术包括但不限于:源代码文件名后缀分析确定所采用的编程语言、项目依赖配置文件分析确定所采用的编程语言及发布技术(例如:maven项目的pom.xml 文件,go项目的go.mod文件)、项目构建脚本文件分析(例如:docker的Dockfile文件)等等。其中,Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven除了以程序构建能力为特色之外,还提供高级项目管理工具。由于Maven的缺省构建规则有较高的可重用性,所以常常用两三行Maven构建脚本就可以构建简单的项目。由于Maven的面向项目的方法,许多ApacheJakarta项目发文时使用Maven,而且公司项目采用 Maven的比例在持续增长。Go(又称Golang)是Google的Robert Griesemer,Rob Pike及Ken Thompson开发的一种静态强类型、编译型语言。Go语言语法与C相近,但功能上有:内存安全,GC(垃圾回收),结构形态及CSP-style并发计算。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
S3、“部署环境分析模块”读取项目对应的配置文件,分析项目所涉及的部署环境。所采用的分析技术包括但不限于:项目启动配置文件分析(例如:spring项目的application-XXXX.proerties文件)、部署配置文件分析(例如:helm的xxx-values.yaml文件)。其中,Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean 的生命周期进行管理的轻量级容器(lightweight container)。Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、 AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此,Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Helm是 Kubernetes的包管理器。包管理器类似于我们在Ubuntu中使用的apt、 Centos中使用的yum或者Python中的pip一样,能快速查找、下载和安装软件包。Helm由客户端组件helm和服务端组件Tiller组成,能够将一组K8S资源打包统一管理,是查找、共享和使用为Kubernetes构建的软件的最佳方式。
S4、“制品库模板匹配模块”根据步骤2、3的分析结果,匹配合适的制品库模板,生成制品库列表。例如:srdcloud项目的子项目aiops,分析发现需要生产docker镜像作为软件制品,其制品需要部署在生产环境和测试环境,按照规则匹配docker release类型和docker snapshot类型的制品库配置模板,需要生成两个制品库,名称分别为:
“srdcloud-aiops-docker-release-local”和“srdcloud-aiops-docker-snapshot-local”。
其中,AIOps指多层技术平台,这些平台采用分析和机器学习技术分析从多种IT运营工具和设备收集的大数据,自动实时确定并应对问题,从而实现IT运营的自动化和增强。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
S5、“用户交互模块”在web界面展示可选的制品库名称及制品库模板配置。
S6、用户按照实际的需要选择所需要的制品库。
S7、“制品库创建模块”按照用户的选择,按照模板的配置创建制品库。
图4是本发明的基于软件仓库的管理系统的一种实施例的模块示意图。本发明的基于软件仓库的管理系统,如图4所示,包括但不限于:
信息获取模块51,获取软件项目的相关信息。
第一次分析模块52,读取软件项目对应的源代码和配置文件进行第一次分析。
第二次分析模块53,读取项目对应的配置文件进行第二次分析。
名称生成模块54,根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表。
制品库配置模块55,自制品库名称列表中择一配置创建制品库。
上述模块的实现原理参见基于软件仓库的管理方法中的相关介绍,此处不再赘述。
本发明的基于软件仓库的管理系统能够对各种代码库进行分析,自动地确定制品的类型和制品部署的环境进行规范化命名,避免了用户手工输入或者手工选择造成的输入错误,降低用户使用的难度,提升了用户体验。
图5是本发明的基于软件仓库的管理系统的另一种实施例的模块示意图。如图5所示,在图4所示装置实施例的基础上,本发明的基于混合加密的登录认证系统还包括:通过源代码分析模块521替换了第一次分析模块52。通过部署环境分析模块531替换了第二次分析模块53。通过第一类名称模块541、第二类名称模块542、制品库名模块543、名称列表模块544替换了第二次分析模块53名称生成模块54。通过名称反馈模块551、指令接收模块552、制品库创建模块553替换了制品库配置模块 55。还包括:权限检测模块561和访问许可模块562,以下针对每个步骤进行说明:
业务请求模块50,并且通过状态获取模块531替换了状态获取模块 53,通过状态响应模块541替换了状态响应模块54。以下针对每个模块进行说明:
信息获取模块51,获取软件项目的相关信息。
源代码分析模块521,读取软件项目对应的源代码和配置文件,分析项目所采用的编程语言及所采用的发布技术。
部署环境分析模块531,读取项目对应的配置文件,分析项目所涉及的部署环境,部署环境的分析技术。
第一类名称模块541,根据第一次分析获得一第一类名称。
第二类名称模块542,根据第二次分析获得一第二类名称。
制品库名模块543,遍历预设规则中的制品库名称列表,获得同时具备第一类名称和第二类名称的制品库名称。
名称列表模块544,收集制品库名称生成制品库名称列表。
名称反馈模块551,反馈可选的制品库名称及默认的制品库配置。
指令接收模块552,接收用户选择制品库的指令。
制品库创建模块553,根据用户选择的制品库名称配置创建制品库。
权限检测模块561,检测访问制品库的用户的权限标签。
访问许可模块562,判断权限标签是否同时满足制品库名称所包含的第一类名称和第二类名称时,若是,则允许用户访问制品库,若否,则拒绝用户访问制品库。
上述模的实现原理参见基于软件仓库的管理方法中的相关介绍,此处不再赘述。
本发明的基于软件仓库的管理系统能够对各种代码库进行分析,自动地确定制品的类型和制品部署的环境进行规范化命名,避免了用户手工输入或者手工选择造成的输入错误,降低用户使用的难度,提升了用户体验。
图6是本发明的基于软件仓库的管理系统的另一种实施例的模块示意图。如图6所示,在一个变化例中,本发明的技术方案包括制品类型分析模块(S101)、部署环境分析模块(S102)、模板管理模块(S103)、制品库模板匹配模块(S104)、用户交互模块(S105)、制品仓库创建模块(S106),以下介绍每个模块的作用。
制品类型分析模块:从代码仓库读取代码及配置,分析项目所采用的编程语言及部署技术。
部署环境分析模块:从代码仓库读取配置,分析项目需要部署的环境。
模板管理模块:负责预置制品库模板的管理。
制品库模板匹配模块:根据制品类型分析模块和部署环境分析模块获取的结果,匹配合适的制品库模板。
用户交互模块:把生成的制品库名称及默认的制品库配置呈现给用户选择。
制品仓库创建模块:负责按照用户的选择创建制品库。
通过制品类型分析模块(S101)、部署环境分析模块(S102)、模板管理模块(S103)、制品库模板匹配模块(S104)、用户交互模块(S105)、制品仓库创建模块(S106),实现以下步骤:
步骤1:获取项目的相关信息。包括项目名称(如果是子项目,需要完整的项目路径)、项目对应的代码仓库地址等信息。
步骤2:“制品类型分析模块”读取项目对应的源代码和配置文件,分析项目所采用的编程语言及所采用的发布技术。
步骤3:“部署环境分析模块”读取项目对应的配置文件,分析项目所涉及的部署环境。
步骤4:“名称生成模块”根据步骤2、3的分析结果,按照一定的规则,生成制品库名称列表。
步骤5:“用户交互模块”展示可选的制品库名称及默认的制品库配置。
步骤6:用户选择所需要的制品库名称。
步骤7:“制品库创建模块”按照用户的选择创建制品库。
本发明实施例还提供一种基于软件仓库的管理设备,包括处理器。存储器,其中存储有处理器的可执行指令。其中,处理器配置为经由执行可执行指令来执行的基于软件仓库的管理方法的步骤。
如上所示,该实施例本发明的基于软件仓库的管理系统能够对各种代码库进行分析,自动地确定制品的类型和制品部署的环境进行规范化命名,避免了用户手工输入或者手工选择造成的输入错误,降低用户使用的难度,提升了用户体验。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
图7是本发明的基于软件仓库的管理设备的结构示意图。下面参照图7来描述根据本发明的这种实施方式的电子设备600。图7显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备600以通用计算设备的形式表现。电子设备 600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线 630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图1中所示的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:处理系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备 600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现的基于软件仓库的管理方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
如上所示,该实施例本发明的基于软件仓库的管理系统能够对各种代码库进行分析,自动地确定制品的类型和制品部署的环境进行规范化命名,避免了用户手工输入或者手工选择造成的输入错误,降低用户使用的难度,提升了用户体验。
根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明处理的程序代码,程序设计语言包括面向对象的程序设计语言—诸如 Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上,本发明的目的在于提供基于软件仓库的管理方法、系统、设备及存储介质,能够对各种代码库进行分析,自动地确定制品的类型和制品部署的环境进行规范化命名,避免了用户手工输入或者手工选择造成的输入错误,降低用户使用的难度,提升了用户体验。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (12)
1.一种基于软件仓库的管理方法,其特征在于,包括:
获取软件项目的相关信息;
读取软件项目对应的源代码和配置文件进行第一次分析;
读取项目对应的配置文件进行第二次分析;
根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表;
自所述制品库名称列表中择一配置创建制品库。
2.根据权利要求1所述的基于软件仓库的管理方法,其特征在于,所述获取软件项目的相关信息,包括:
获取软件项目的相关信息,当所述软件项目为主项目时,所述相关信息至少包括软件项目名称、软件项目对应的代码仓库地址;
当所述软件项目为子项目时,所述相关信息至少包括软件项目名称、项目路径、软件项目对应的代码仓库地址。
3.根据权利要求1所述的基于软件仓库的管理方法,其特征在于,所述读取软件项目对应的源代码和配置文件进行第一次分析,包括:
读取软件项目对应的源代码和配置文件,分析项目所采用的编程语言及所采用的发布技术,所述分析至少包括:基于源代码文件名后缀分析确定所采用的编程语言、基于项目依赖配置文件分析确定所采用的编程语言及发布技术以及基于项目构建脚本文件分析中的至少一种。
4.根据权利要求3所述的基于软件仓库的管理方法,其特征在于,所述读取项目对应的配置文件进行第二次分析,包括:
所述读取项目对应的配置文件,分析项目所涉及的部署环境,所述分析至少包括:项目启动配置文件分析、部署配置文件分析中的至少一种。
5.根据权利要求4所述的基于软件仓库的管理方法,其特征在于,所述根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表,包括:
根据所述读取软件项目对应的源代码和配置文件的分析结果以及所述读取项目对应的配置文件的部署环境分析结果,匹配预设的制品库模板。
6.根据权利要求5所述的基于软件仓库的管理方法,其特征在于,所述根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表,包括:
根据所述第一次分析获得一第一类名称;
根据所述第二次分析获得一第二类名称;
遍历所述预设规则中的制品库名称列表,获得同时具备所述第一类名称和第二类名称的制品库名称;
收集所述制品库名称生成所述制品库名称列表。
7.根据权利要求5所述的基于软件仓库的管理方法,其特征在于,所述自所述制品库名称列表中则一配置创建制品库,包括:
反馈可选的制品库名称及默认的制品库配置;
接收用户选择制品库的指令;
根据所述用户选择的制品库名称配置创建制品库。
8.根据权利要求5所述的基于软件仓库的管理方法,其特征在于,
所述制品库模板包括了名称生成规则,采用自动的方式生成制品库的名称,预设管理制品库名称。
9.根据权利要求5所述的基于软件仓库的管理方法,其特征在于,所述自所述制品库名称列表中择一配置创建制品库之后,还包括:
检测访问所述制品库的用户的权限标签,所述权限标签中至少包含预设的第一类名称集合中的至少一个第一类名称和预设的第二类名称集合中至少一个第二类名称;
判断所述权限标签是否同时满足所述制品库名称所包含的第一类名称和第二类名称时,若是,则允许该用户访问所述制品库,若否,则拒绝该用户访问所述制品库。
10.一种基于软件仓库的管理系统,其特征在于,包括:
信息获取模块,获取软件项目的相关信息;
第一次分析模块,读取软件项目对应的源代码和配置文件进行第一次分析;
第二次分析模块,读取项目对应的配置文件进行第二次分析;
名称生成模块,根据第一次分析和第二次分析的结果,基于预设规则生成制品库名称列表;
制品库配置模块,自所述制品库名称列表中择一配置创建制品库。
11.一种基于软件仓库的管理设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至9任意一项所述基于软件仓库的管理方法的步骤。
12.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现权利要求1至9任意一项所述基于软件仓库的管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111353097.0A CN114327580A (zh) | 2021-11-16 | 2021-11-16 | 基于软件仓库的管理方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111353097.0A CN114327580A (zh) | 2021-11-16 | 2021-11-16 | 基于软件仓库的管理方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327580A true CN114327580A (zh) | 2022-04-12 |
Family
ID=81045598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111353097.0A Pending CN114327580A (zh) | 2021-11-16 | 2021-11-16 | 基于软件仓库的管理方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327580A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707547A (zh) * | 2024-02-05 | 2024-03-15 | 云筑信息科技(成都)有限公司 | 一种解析java项目间引用关系的方法 |
-
2021
- 2021-11-16 CN CN202111353097.0A patent/CN114327580A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707547A (zh) * | 2024-02-05 | 2024-03-15 | 云筑信息科技(成都)有限公司 | 一种解析java项目间引用关系的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10929116B2 (en) | Generation of dynamic software models using input mapping with feature definitions | |
US11775486B2 (en) | System, method and computer program product for database change management | |
US20220253298A1 (en) | Systems and methods for transformation of reporting schema | |
US10162612B2 (en) | Method and apparatus for inventory analysis | |
US8321856B2 (en) | Supplying software updates synchronously | |
US10579638B2 (en) | Automating extract, transform, and load job testing | |
US8914789B2 (en) | Systematic migration of workload based on classification | |
US9087041B2 (en) | Enterprise test system platform and associated method for interoperable test data management, test development, test libraries and test workflow management and automation | |
US9063808B2 (en) | Deploying a package for a software application | |
US20180285247A1 (en) | Systems, methods, and apparatus for automated code testing | |
CN111158745B (zh) | 一种基于Docker的数据处理平台 | |
US20170168919A1 (en) | Feature switches for private cloud and on-premise application components | |
Kunszt et al. | iPortal: the swiss grid proteomics portal: Requirements and new features based on experience and usability considerations | |
US10885087B2 (en) | Cognitive automation tool | |
US10564961B1 (en) | Artifact report for cloud-based or on-premises environment/system infrastructure | |
WO2016007178A1 (en) | System and method for providing contextual analytics data | |
US20200257616A1 (en) | Systems and method for automated testing framework for service portal catalog | |
US10732948B2 (en) | System and method for implementing automated deployment | |
CN114327580A (zh) | 基于软件仓库的管理方法、系统、设备及存储介质 | |
US20220391799A1 (en) | Customized laboratory training based on user role and laboratory configuration | |
US20240095154A1 (en) | System and Method of Automated Quality Assurance and Performance Testing Framework | |
Correia | Entrega Contínua de Aplicações em Ambientes Híbridos | |
Das et al. | Analyzing Technical Debt by Mapping Production Logs with Source Code | |
Guzmán Mayorga et al. | Browz: automatic visual regression testing using containers for Web apps running on Chrome and Firefox | |
CN117193751A (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 |