CN111045717B - 获取项目依赖包的方法、装置、计算机设备及存储介质 - Google Patents

获取项目依赖包的方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111045717B
CN111045717B CN201911072699.1A CN201911072699A CN111045717B CN 111045717 B CN111045717 B CN 111045717B CN 201911072699 A CN201911072699 A CN 201911072699A CN 111045717 B CN111045717 B CN 111045717B
Authority
CN
China
Prior art keywords
dependency
dependency declaration
declaration
extension
target
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
Application number
CN201911072699.1A
Other languages
English (en)
Other versions
CN111045717A (zh
Inventor
陈彰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911072699.1A priority Critical patent/CN111045717B/zh
Publication of CN111045717A publication Critical patent/CN111045717A/zh
Application granted granted Critical
Publication of CN111045717B publication Critical patent/CN111045717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提出的一种获取项目依赖包的方法、装置、计算机设备及存储介质,获取目标项目的基础依赖声明和与所述目标项目对应的扩展依赖声明,根据基础依赖声明中包含的扩展依赖位置标记合并所述基础依赖声明和扩展依赖声明得到目标依赖声明,根据目标依赖声明从预设的软件制品库中获取与所述目标项目对应的依赖包。通过本方案,由于基础依赖声明中设有用于插入扩展依赖声明的位置,这就使得可以根据需求在基础依赖声明中添加扩展依赖声明,从而根据添加的扩展依赖声明直接从预设的软件制品库中获取项目所需的扩展包,无需再人工手动上传扩展包,提高了效率。

Description

获取项目依赖包的方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及互联网技术领域,具体涉及一种获取项目依赖包的方法、装置、计算机设备及存储介质。
背景技术
当前软件开发中广泛使用依赖管理工具(比如maven,gradle等)和软件制品库(maven仓库、jfrog等)来管理软件产出物。通过将软件制品(jar包)作为软件产出物发布到仓库,在项目的开发过程中如果需要使用对应的软件制品作为依赖,只需在开发的项目里通过一定方法(比如maven通过pom.xml文件)声明被引用的软件制品的坐标(比如maven的group id,artifact Id和version)即可通过依赖管理工具来获取到这些依赖。
为了提升构建项目的效率和节省资源,往往会构建一些服务型的服务平台,通过这些服务平台,项目开发人员通过简单的项目配置或者少量开发即可完成项目的构建。这些服务平台本身的代码由平台开发者维护,一般不会开放给项目开发人员来修改,对于平台不能直接支持的功能点,一般会开放扩展接口给项目开发人员使用,项目开发人员基于扩展接口编写代码后上传到平台即可完成对项目功能的扩展。在进行扩展时,对项目开发人员而言,由于需要手动上传扩展所需的扩展包(jar包),项目开发人员需要在本地进行jar打包或者从软件制品库下载扩展包到本地然后上传,这种方式效率相对低下,并且如果是本地打包也不方便管理包的版本。对服务平台来说,由于项目开发人员会上传扩展包,所以需要对项目开发人员上传的扩展包提供存储和管理,当项目在平台上运行时,需要提供一定的机制将项目开发人员上传的扩展包和平台上的基础jar包集成到一起后部署到服务平台的运行环境中,这给服务平台开发带来了额外的工作。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明实施例提供了一种获取项目依赖包的方法、装置、计算机设备及存储介质。
有鉴于此,第一方面,本发明实施例提供一种获取项目依赖包的方法,应用于服务平台,所述方法包括:
获取目标项目的基础依赖声明,所述基础依赖声明中包含用于标识扩展依赖声明的插入位置的扩展依赖位置标记;
获取与所述目标项目对应的扩展依赖声明;
根据所述基础依赖声明包含的扩展依赖位置标记,将所述基础依赖声明和所述扩展依赖声明进行合并,得到目标依赖声明;
根据所述目标依赖声明从预设的软件制品库中获取与所述目标依赖声明对应的依赖包,以作为所述目标项目的依赖包。
在一种可能的实现方式中,获取目标项目的基础依赖声明,包括:
获取所述目标项目的标识;
根据所述目标项目的标识,从预设的代码托管仓库中获取目标项目的基础依赖声明。
在一种可能的实现方式中,获取所述目标项目对应的扩展依赖声明包括:
获取用户输入到所述服务平台中的项目配置信息,所述项目配置信息中包含与所述目标项目对应的扩展依赖声明;
获取所述项目配置信息中包含的与所述目标项目对应的扩展依赖声明。
在一种可能的实现方式中,根据所述基础依赖声明包含的扩展依赖位置标记,将所述基础依赖声明和所述扩展依赖声明进行合并,得到目标依赖声明,包括:
确定扩展依赖位置标记在所述基础依赖声明中的位置;
将所述扩展依赖声明插入所述位置,得到包含所述扩展依赖声明的基础依赖声明;
将包含所述扩展依赖声明的基础依赖声明作为目标依赖声明。
第二方面,本发明实施例还提供了一种获取项目依赖包的装置,应用于服务平台,所述装置包括:
第一获取模块,用于获取目标项目的基础依赖声明,所述基础依赖声明中包含用于标识扩展依赖声明的插入位置的扩展依赖位置标记;
第二获取模块,用于获取与所述目标项目对应的扩展依赖声明;
合并模块,用于根据所述基础依赖声明包含的扩展依赖位置标记,将所述基础依赖声明和所述扩展依赖声明进行合并,得到目标依赖声明;
第三获取模块,用于根据所述目标依赖声明从预设的软件制品库中获取与所述目标依赖声明对应的依赖包,以作为所述目标项目的依赖包。
在一种可能的实现方式中,所述第一获取模块获取目标项目的基础依赖声明,包括:
获取所述目标项目的标识;
根据所述目标项目的标识,从预设的代码托管仓库中获取目标项目的基础依赖声明。
在一种可能的实现方式中,所述第二获取模块获取所述目标项目对应的扩展依赖声明包括:
获取用户输入到所述服务平台中的项目配置信息,所述项目配置信息中包含与所述目标项目对应的扩展依赖声明;
获取所述项目配置信息中包含的与所述目标项目对应的扩展依赖声明。
在一种可能的实现方式中,所述合并模块根据所述基础依赖声明包含的扩展依赖位置标记,将所述基础依赖声明和所述扩展依赖声明进行合并,得到目标依赖声明,包括:
确定扩展依赖位置标记在所述基础依赖声明中的位置;
将所述扩展依赖声明插入所述位置,得到包含所述扩展依赖声明的基础依赖声明;
将包含所述扩展依赖声明的基础依赖声明作为目标依赖声明。
第三方面,本发明实施例还提供了一种计算机设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现第一方面所述的获取项目依赖包的方法。
第四方面,本发明实施例还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面所述的获取项目依赖包的方法。
相比现有技术,本发明实施例提出的一种获取项目依赖包的方法,获取目标项目的基础依赖声明和与所述目标项目对应的扩展依赖声明,根据基础依赖声明中包含的扩展依赖位置标记合并所述基础依赖声明和扩展依赖声明得到目标依赖声明,根据目标依赖声明从预设的软件制品库中获取与所述目标项目对应的依赖包。通过本方案,由于基础依赖声明中设有用于插入扩展依赖声明的位置,这就使得可以根据需求在基础依赖声明中添加扩展依赖声明,从而根据添加的扩展依赖声明直接从预设的软件制品库中获取项目所需的扩展包,无需再人工手动上传扩展包,提高了效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种获取项目依赖包的方法的流程图;
图2为本发明实施例提供的一种获取项目依赖包的装置的框图;
图3为本发明实施例提供的一种计算机设备框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的项目部署,为了提升效率和节省资源,往往会构建一些服务型的平台,这些平台安装有持续集成工具比如jenkins,jenkins来进行项目的构建和部署。首先项目开发人员通过jenkins从代码托管仓库(例如gitlab)中将要部署的目标项目下载到jenkins服务器,然后基于执行maven的构建命令,构建过程中maven会基于pom.xml文件(pom.xml文件是maven进行工作的主要配置文件)中的声明内容自动获取目标项目依赖的jar包(java语言里的一种模块化软件制品),并将获取的jar包和目标项目本身的代码进行编辑以后进行打包,形成可用于部署的应用软件包,最后部署到应用服务器上,项目开发人员通过上述简单的配置或者少量开发即可完成项目的构建。
但是在上述过程中,由于pom.xml文件中对依赖的声明是固定不变的,目标项目的依赖在开发时就已经确定,而且这些服务平台本身的代码由平台开发者维护,一般不会开发给项目开发人员来修改,对于平台不能直接支持的功能点,平台会开放扩展接口给项目开发人员使用,若项目开发人员想对目标项目进行功能扩展就需要基于扩展接口编写扩展的jar包后上传来完成对目标项目的扩展,而由于需要手动上传jar包导致通过这种方式进行项目扩展效率较低。
为了解决现有的项目扩展效率低下的问题,本发明实施例提供了一种获取项目依赖包的方法。
图1为本发明实施例提供的一种获取项目依赖包的方法的流程图,该方法应用于服务平台,如图1所示该方法包括如下步骤:
S11.获取目标项目的基础依赖声明,基础依赖声明中包含用于标识扩展依赖声明的插入位置的扩展依赖位置标记。
其中,插入位置是根据用户需求设定的用于插入标识扩展依赖声明的位置,然后在这个位置以注释的方式添加扩展依赖位置标记,目的是便于服务平台可以根据扩展依赖位置标记找到该位置。
在一种可能的实现方式中,基础依赖声明就是maven中目标项目的pom.xml文件中用来标识目标项目依赖的基础jar包的声明内容,其中基础jar包为预先开发且发布到软件制品库((例如maven仓库,jfrog等))中的jar包。
在本实施例中,基础依赖声明中增加了用于标识扩展依赖声明的插入位置的扩展依赖位置标记,其中扩展依赖声明用于标识目标项目依赖的扩展包声明,其中扩展依赖位置标记的样式和格式为根据需求设定的。以maven为例,可以在目标项目的pom.xml文件里以注释的方式做扩展依赖位置标记,示例如下:
其中,groupId和artifactId两者统称为坐标,是为了保证项目唯一性而提出的,groupId通常用来标识一个组织或公司,groupId有多个段,第一个段为域,第二个段为公司或者组织名,域有org(非盈利组织)、com(商业组织)、cn等,artifactId用来标识项目名,例如上述示例中的groupId和artifactId就表服务平台仓库中的base-service-lib1。
Version用于标识版本,<version>1.0就表示版本为1.0。
注释部分的“<!--DEPENDENCY-HOOK-POINT-->”就是标识后续扩展依赖声明插入位置的扩展依赖位置标记。
在一种可能的实现方式中,由于不同的项目其对应的基础依赖声明也不同,所以在获取基础依赖声明时可以根据目标项目的标识来获取,其中目标项目的标识能唯一确定该目标项目的标识(例如目标项目的id等),具体的可以通过下述方式获取目标项目的基础依赖声明:获取目标项目的标识,根据目标项目的标识,从预设的代码托管仓库中获取目标项目的基础依赖声明。其中,目标项目的标识可以有用户输入到服务平台中。
S12.获取与目标项目对应的扩展依赖声明。
其中,扩展依赖声明用于声明对目标项目的扩展包的依赖。
在本实施例中,在进行目标项目的部署之前,业务开发人员先开发目标项目的扩展包,扩展包开发完成后,将扩展包发布到软件制品库(例如maven仓库,jfrog等)中,这样后续在使用时这些扩展包时只需要声明对这些扩展包的依赖即可。
在一种可能的实现方式中,在进行目标项目部署之前,业务开发人员需要在服务平台上进行项目配置,在进行项目配置时增加扩展依赖声明配置,以发布在maven仓库中的扩展包为例,扩展依赖声明的配置可以定义为如下格式:
{
"bussness_extend_dependency":[
"com.demo.group:demo-extend1:1.0.1",
"com.demo.group:demo-extend2:1.2.1",
"com.demo.group:demo-extend3:2.0.1",
],
...
}
上述配置中,增加的bussness_extend_dependency配置项为扩展依赖声明,是一个数组格式,其中可以包含所需的一个或或多个(包含两个)扩展包的依赖标识。上述示例中包含了三个扩展包的依赖标识,每个依赖标识由maven库里扩展包的groupId,artifactId,version组成,格式为“groupId:artifactId:version”。
在获取目标项目对应的扩展依赖声明时,获取用户输入到服务平台中的项目配置信息,项目配置信息中包含与目标项目对应的扩展依赖声明,获取项目配置信息中包含的与目标项目对应的扩展依赖声明即可。
S13.根据基础依赖声明包含的扩展依赖位置标记,将基础依赖声明和扩展依赖声明进行合并,得到目标依赖声明。
在一种可能的实现方式中,通过查找的方式,确定扩展依赖位置标记在基础依赖声明中的位置,将扩展依赖声明插入位置,得到包含扩展依赖声明的基础依赖声明,将包含扩展依赖声明的基础依赖声明作为目标依赖声明。
在一种可能的实现方式中,扩展依赖位置标识的格式为用户知道的格式,所以在用户知道该格式的情况下,在pom.xml文件中采用查找工具即可找到扩展依赖位置标识,从而用扩展依赖声明替换掉扩展依赖位置标识,即实现了将扩展依赖声明插入基础依赖声明中,从而得到目标依赖声明。
S14.根据目标依赖声明从预设的软件制品库中获取与目标依赖声明对应的依赖包,以作为目标项目的依赖包。
其中依赖包为目标项目依赖的jar包,包括基础依赖声明中声明的基础jar包和扩展依赖声明中声明的扩展包。
由于基础jar包和扩展包已预先发布到了软件制品库中,所以根据目标依赖声明中包含的依赖标识即可从软件制品库中获取到与目标依赖声明对应的依赖包,由于目标依赖声明与目标项目是一一对应的关系,所以与目标依赖声明对应的依赖包就是部署目标项目所需的依赖包,也就是目标项目的依赖包。
本发明实施例提出的一种获取项目依赖包的方法,获取目标项目的基础依赖声明和与目标项目对应的扩展依赖声明,根据基础依赖声明中包含的扩展依赖位置标记合并基础依赖声明和扩展依赖声明得到目标依赖声明,根据目标依赖声明从预设的软件制品库中获取与目标项目对应的依赖包。通过本方案,由于基础依赖声明中设有用于插入扩展依赖声明的位置,这就使得可以根据需求在基础依赖声明中添加扩展依赖声明,从而根据添加的扩展依赖声明直接从预设的软件制品库中获取项目所需的扩展包,无需再人工手动上传扩展包,提高了效率,而且由于依赖包是根据由基础依赖声明和扩展依赖声明组成的目标依赖声明获取的,所以依赖包为由基础jar包和扩展包整合成的,因此服务平台也无需再单独对扩展包和基础jar包进行整合。
基于与上述方法相同的发明构思,本发明实施例还提供了一种获取项目依赖包的装置,应用于服务平台,如图2所示装置200可以包括:
第一获取模块201,用于获取目标项目的基础依赖声明,基础依赖声明中包含用于标识扩展依赖声明的插入位置的扩展依赖位置标记;
第二获取模块202,用于获取与目标项目对应的扩展依赖声明;
合并模块203,用于根据基础依赖声明包含的扩展依赖位置标记,将基础依赖声明和扩展依赖声明进行合并,得到目标依赖声明;
第三获取模块204,用于根据目标依赖声明从预设的软件制品库中获取与目标依赖声明对应的依赖包,以作为目标项目的依赖包。
在一种可能的实现方式中,第一获取模块201获取目标项目的基础依赖声明,包括:
获取目标项目的标识;
根据目标项目的标识,从预设的代码托管仓库中获取目标项目的基础依赖声明。
在一种可能的实现方式中,第二获取模块202获取目标项目对应的扩展依赖声明包括:
获取用户输入到服务平台中的项目配置信息,项目配置信息中包含与目标项目对应的扩展依赖声明;
获取项目配置信息中包含的与目标项目对应的扩展依赖声明。
在一种可能的实现方式中,合并模块203根据基础依赖声明包含的扩展依赖位置标记,将基础依赖声明和扩展依赖声明进行合并,得到目标依赖声明,包括:
确定扩展依赖位置标记在基础依赖声明中的位置;
将扩展依赖声明插入位置,得到包含扩展依赖声明的基础依赖声明;
将包含扩展依赖声明的基础依赖声明作为目标依赖声明。
在本申请另一实施例中,还提供了一种计算机设备,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信;
存储器303,用于存放计算机程序;
处理器301,用于执行存储器303上所存放的程序时,实现如下步骤:
获取目标项目的基础依赖声明,基础依赖声明中包含用于标识扩展依赖声明的插入位置的扩展依赖位置标记;
获取与目标项目对应的扩展依赖声明;
根据基础依赖声明包含的扩展依赖位置标记,将基础依赖声明和扩展依赖声明进行合并,得到目标依赖声明;
根据目标依赖声明从预设的软件制品库中获取与目标依赖声明对应的依赖包,以作为目标项目的依赖包。
上述计算机设备提到的通信总线304可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线304可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口302用于上述计算机设备与其他设备之间的通信。
存储器303可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器301可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请另一实施例中,还提供了一种存储介质,存储介质上存储有数据处理方法程序,数据处理方法程序被处理器执行时实现如下步骤:
获取目标项目的基础依赖声明,基础依赖声明中包含用于标识扩展依赖声明的插入位置的扩展依赖位置标记;
获取与目标项目对应的扩展依赖声明;
根据基础依赖声明包含的扩展依赖位置标记,将基础依赖声明和扩展依赖声明进行合并,得到目标依赖声明;
根据目标依赖声明从预设的软件制品库中获取与目标依赖声明对应的依赖包,以作为目标项目的依赖包。
本发明实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文功能的单元来实现本文的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种获取项目依赖包的方法,其特征在于,应用于服务平台,所述方法包括:
获取目标项目的基础依赖声明,所述基础依赖声明中包含用于标识扩展依赖声明的插入位置的扩展依赖位置标记;其中,所述基础依赖声明用来标识所述目标项目依赖的基础jar包的声明内容;
获取与所述目标项目对应的扩展依赖声明;其中,所述扩展依赖声明用于声明对所述目标项目的扩展包的依赖,包括一个或多个扩展包的依赖标识;
根据所述基础依赖声明包含的扩展依赖位置标记,将所述基础依赖声明和所述扩展依赖声明进行合并,得到目标依赖声明;其中,所述目标依赖声明为将所述扩展依赖声明替换掉所述基础依赖声明包含的扩展依赖位置标识所得;
根据所述目标依赖声明从预设的软件制品库中获取与所述目标依赖声明对应的依赖包,以作为所述目标项目的依赖包。
2.根据权利要求1所述的方法,其特征在于,获取目标项目的基础依赖声明,包括:
获取所述目标项目的标识;
根据所述目标项目的标识,从预设的代码托管仓库中获取目标项目的基础依赖声明。
3.根据权利要求1所述的方法,其特征在于,获取所述目标项目对应的扩展依赖声明包括:
获取用户输入到所述服务平台中的项目配置信息,所述项目配置信息中包含与所述目标项目对应的扩展依赖声明;
获取所述项目配置信息中包含的与所述目标项目对应的扩展依赖声明。
4.根据权利要求1所述的方法,其特征在于,根据所述基础依赖声明包含的扩展依赖位置标记,将所述基础依赖声明和所述扩展依赖声明进行合并,得到目标依赖声明,包括:
确定扩展依赖位置标记在所述基础依赖声明中的位置;
将所述扩展依赖声明插入所述位置,得到包含所述扩展依赖声明的基础依赖声明;
将包含所述扩展依赖声明的基础依赖声明作为目标依赖声明。
5.一种获取项目依赖包的装置,其特征在于,应用于服务平台,所述装置包括:
第一获取模块,用于获取目标项目的基础依赖声明,所述基础依赖声明中包含用于标识扩展依赖声明的插入位置的扩展依赖位置标记;其中,所述基础依赖声明用来标识所述目标项目依赖的基础jar包的声明内容;
第二获取模块,用于获取与所述目标项目对应的扩展依赖声明;其中,所述扩展依赖声明用于声明对所述目标项目的扩展包的依赖,包括一个或多个扩展包的依赖标识;
合并模块,用于根据所述基础依赖声明包含的扩展依赖位置标记,将所述基础依赖声明和所述扩展依赖声明进行合并,得到目标依赖声明;其中,所述目标依赖声明为将所述扩展依赖声明替换掉所述基础依赖声明包含的扩展依赖位置标识所得;
第三获取模块,用于根据所述目标依赖声明从预设的软件制品库中获取与所述目标依赖声明对应的依赖包,以作为所述目标项目的依赖包。
6.根据权利要求5所述的装置,其特征在于,所述第一获取模块获取目标项目的基础依赖声明,包括:
获取所述目标项目的标识;
根据所述目标项目的标识,从预设的代码托管仓库中获取目标项目的基础依赖声明。
7.根据权利要求5所述的装置,其特征在于,所述第二获取模块获取所述目标项目对应的扩展依赖声明包括:
获取用户输入到所述服务平台中的项目配置信息,所述项目配置信息中包含与所述目标项目对应的扩展依赖声明;
获取所述项目配置信息中包含的与所述目标项目对应的扩展依赖声明。
8.根据权利要求5所述的装置,其特征在于,所述合并模块根据所述基础依赖声明包含的扩展依赖位置标记,将所述基础依赖声明和所述扩展依赖声明进行合并,得到目标依赖声明,包括:
确定扩展依赖位置标记在所述基础依赖声明中的位置;
将所述扩展依赖声明插入所述位置,得到包含所述扩展依赖声明的基础依赖声明;
将包含所述扩展依赖声明的基础依赖声明作为目标依赖声明。
9.一种计算机设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现权利要求1-4任一所述的获取项目依赖包的方法。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1-4任一所述的获取项目依赖包的方法。
CN201911072699.1A 2019-11-05 2019-11-05 获取项目依赖包的方法、装置、计算机设备及存储介质 Active CN111045717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911072699.1A CN111045717B (zh) 2019-11-05 2019-11-05 获取项目依赖包的方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911072699.1A CN111045717B (zh) 2019-11-05 2019-11-05 获取项目依赖包的方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111045717A CN111045717A (zh) 2020-04-21
CN111045717B true CN111045717B (zh) 2024-01-16

Family

ID=70232032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911072699.1A Active CN111045717B (zh) 2019-11-05 2019-11-05 获取项目依赖包的方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111045717B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475422A (zh) * 2020-06-28 2020-07-31 四川新网银行股份有限公司 一种基于Jenkins工具的依赖检查方法
CN112256247B (zh) * 2020-10-09 2023-07-28 北京字跳网络技术有限公司 模块组件的依赖处理方法、装置、计算机设备及存储介质
CN117785274B (zh) * 2024-02-23 2024-04-30 智业软件股份有限公司 一种基于gitlab和微服务架构的拆版本方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107577483A (zh) * 2017-08-31 2018-01-12 武汉斗鱼网络科技有限公司 组件工程调用主工程代码的方法、存储介质、设备及系统
CN108829378A (zh) * 2018-05-24 2018-11-16 北京顺丰同城科技有限公司 一种应用软件的开发方法、装置及电子设备
CN109271172A (zh) * 2018-09-17 2019-01-25 杭州安恒信息技术股份有限公司 一种swarm集群的宿主机性能扩展方法及装置
CN109799982A (zh) * 2018-12-28 2019-05-24 深圳竹云科技有限公司 一种基于war包的实施开发方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563412B2 (en) * 2013-03-13 2017-02-07 Microsoft Technology Licensing, Llc. Statically extensible types

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107577483A (zh) * 2017-08-31 2018-01-12 武汉斗鱼网络科技有限公司 组件工程调用主工程代码的方法、存储介质、设备及系统
CN108829378A (zh) * 2018-05-24 2018-11-16 北京顺丰同城科技有限公司 一种应用软件的开发方法、装置及电子设备
CN109271172A (zh) * 2018-09-17 2019-01-25 杭州安恒信息技术股份有限公司 一种swarm集群的宿主机性能扩展方法及装置
CN109799982A (zh) * 2018-12-28 2019-05-24 深圳竹云科技有限公司 一种基于war包的实施开发方法

Also Published As

Publication number Publication date
CN111045717A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
CN105657191B (zh) 一种基于Android系统的应用增量升级方法及系统
CN111045717B (zh) 获取项目依赖包的方法、装置、计算机设备及存储介质
US8321856B2 (en) Supplying software updates synchronously
US9602347B2 (en) Method, system and program for browser to switch IE kernel
US20160019072A1 (en) Dynamic determination of application server runtime classloading
US8627293B2 (en) Detecting applications in a virtualization environment
US20060020937A1 (en) System and method for extraction and creation of application meta-information within a software application repository
US8843904B2 (en) Automated building and retargeting of architecture-dependent assets
US11113050B2 (en) Application architecture generation
CN108563440B (zh) 列表控制器代码自动添加方法、装置及可读存储介质
EP3447635A1 (en) Application architecture generation
CN117693734A (zh) 前端项目处理方法、装置、设备、管理系统及存储介质
US9411618B2 (en) Metadata-based class loading using a content repository
CN109857444B (zh) 应用程序的更新方法、装置、电子设备和可读存储介质
CN108897588B (zh) 一种用于模块间通信的路由方法和路由装置
CN115794214B (zh) 应用模块元数据管理方法、设备、存储介质及装置
CN110955449B (zh) 客户端的灰度发布方法及装置
CN109582347B (zh) 一种获取前端代码的方法及装置
CN109828784B (zh) 一种任务抓取方法及装置
CN112416418A (zh) 应用组件的生成方法、装置、计算机设备和可读存储介质
CN111813385A (zh) 一种基于Web应用的页面插件化方法、装置及设备
CN116303099A (zh) 自动化测试环境跨平台快速部署方法、装置、介质及设备
CN111273940B (zh) 将程序文件上传至代码仓库的方法及装置
US20120084772A1 (en) Method and system for deploying application components in a partial deployment
CN112114871A (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