CN111782239A - 软件打包和源码版本信息获取方法、装置及存储介质 - Google Patents
软件打包和源码版本信息获取方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111782239A CN111782239A CN202010494258.7A CN202010494258A CN111782239A CN 111782239 A CN111782239 A CN 111782239A CN 202010494258 A CN202010494258 A CN 202010494258A CN 111782239 A CN111782239 A CN 111782239A
- Authority
- CN
- China
- Prior art keywords
- source code
- software
- version
- software source
- file
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004806 packaging method and process Methods 0.000 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000002349 favourable effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000007488 abnormal function Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008439 repair process Effects 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/60—Software deployment
- G06F8/65—Updates
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及软件技术领域,公开了一种软件打包方法,包括:获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;将所述待打包文件进行打包,得到所述软件源码对应的软件包。本发明还提出一种软件打包装置、源码版本信息获取方法、电子设备以及一种计算机可读存储介质。本发明实施例可以提高获取源码的版本信息的速度和准确率。
Description
技术领域
本发明实施例涉及软件技术领域,特别涉及一种软件打包和源码版本信息获取方法、装置、电子设备及计算机可读存储介质。
背景技术
在软件开发时,通常会将待发布的应用软件打包成软件包,在软件包中有可执行程序和可执行程序执行时所依赖的库。随着软件功能的增加、bug的修复等原因,需要不断更新已经发布的软件包,当每次更新已发布的软件包时,需要基于该软件包的源码进行再次开发,因此在更新已发布的软件包时需要获取该软件包的源码,由于软件在不断的完善,因此源码的版本也可能有非常多种,需要一种方法快速确定软件包对应的源码的版本信息,从而有利于快速获取到该软件包对应的源码。
现有技术中,获取软件包对应的源码的版本信息的方式是预先记录软件的版本号和源码的版本信息的对应关系,然后开发人员和运维人员通过预先记录的对应关系获取源码的版本信息,进而根据该版本信息获取源码进行修改或迭代开发。发明人发现,由于一个软件就可能存在非常多的对应关系,因此这种获取源码的版本信息的效率不高又可能出错,导致基于源码的版本信息再获取源码的效率也不高且可能出错;特别是当业务系统中微服务数量非常多时,记录和维护的工作量非常大,获取源码的版本信息的效率就更低并且更容易出现错误。
发明内容
本发明实施方式的目的在于提供一种软件打包和源码版本信息获取方法、装置、电子设备及计算机可读存储介质,可以提高获取源码的版本信息的速度和准确率。
为解决上述技术问题,本发明的实施方式提供了一种软件打包方法,包括:获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;将所述待打包文件进行打包,得到所述软件源码对应的软件包。
本发明的实施方式还提供了一种源码版本信息获取方法,包括:接收查询软件包对应的软件源码的版本信息的指令,所述软件包为根据上述软件打包方法得到的;解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。
本发明的实施方式还提供了一种软件打包装置,所述装置包括:打包文件获取模块,用于获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;打包模块,用于将所述待打包文件进行打包,得到所述软件源码对应的软件包。
本发明的实施方式还提供了一种电子设备,所述电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的软件打包方法或源码版本信息获取方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述软件打包方法或源码版本信息获取方法。
相对于现有技术而言,本发明实施方式通过在软件打包时,将软件源码的版本文件一并打包到软件包中,从而针对每个软件包可以快速准确地获取该软件包对应的软件源码的版本信息。由于快速准确地获取到软件源码的版本信息,因此能够快速准确地获取到软件源码。
优选地,所述软件包还包括所述软件源码的版本管理软件开发工具包SDK,所述版本管理SDK用于解析所述版本文件,获取所述版本文件包含的信息。
相对于现有技术而言,本发明实施方式中,在软件包中提供了快速查询源码版本的技术工具,有利于快速便捷地查询软件源码的版本信息。
优选地,所述获取软件源码的待打包文件,包括:
获取所述软件源码以及所述软件源码的版本信息;
将所述软件源码以及所述软件源码的版本信息进行编译,得到所述软件源码的待打包文件,所述待打包文件包括编译所述软件源码得到的所述软件源码的可执行程序和编译所述版本信息得到的所述软件源码的版本文件。
相对于现有技术而言,本发明实施方式中,在编译阶段就将软件源码以及软件源码的版本信息同步编译,使得待打包文件中包含由编译版本信息得到的软件源码的版本文件,无需在打包时再查找软件源码的版本信息,有利于快速打包。
优选地,所述版本文件还包括与编译所述软件源码相关的信息。
相对于现有技术而言,本发明实施方式中,由于版本文件还包括与编译软件源码相关的信息,因为在软件包中能够最大限度保存软件源码的相关信息,有利于为软件包和软件源码的维护和升级提供真实有效的信息。
优选地,所述获取所述软件源码以及所述软件源码的版本信息,包括:
从代码仓库获取所述软件源码;
从所述代码仓库中所述软件源码对应的源码节点获取所述软件源码的版本信息。
相对于现有技术而言,本发明实施方式中,无需人工记录,就能够快速准确地获取到软件源码的版本信息,从而提高了编译得到的版本文件和软件包中版本文件所包含的版本信息的准确性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明第一实施例提供的一种软件打包方法的流程示意图;
图2为本发明第二实施例提供的一种软件打包方法的流程示意图;
图3为本发明第三实施例提供的一种软件打包方法的流程示意图;
图4为本发明第四实施例提供的一种源码版本信息获取方法的流程示意图;
图5为本发明第五实施例提供的一种软件打包装置的结构示意图;
图6为本发明第六实施例提供的一种软件打包装置的结构示意图;
图7为本发明第七实施例提供的一种源码版本信息获取装置的结构示意图;
图8为本发明第八实施例提供的电子设备的内部结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
下面对本实施方式的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
请参见图1,图1为第一实施例提供的软件打包方法的流程示意图,该方法可以由一个电子设备执行,该电子设备例如可以是服务器。
详细地,该软件打包方法包括:
S20,获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息。
本实施例中,所述软件源码为应用软件的开发代码。该软件源码可以是由任意编程语言所编写的开发程序,例如软件源码为C++或者Java语言或Python语言编写的程序。
本实施例中,软件源码的可执行程序可以由软件源码通过编译器编译得到,所述软件源码的版本文件可以从本地存储空间中获取,也可以是基于从存储软件源码的代码仓库中获取到的软件源码的版本信息预先生成的。
进一步的,所述软件源码的版本信息包括但不限于软件源码的存储地址、软件源码的版本、软件源码的分支、软件源码的修改人、软件源码的修改注释。
进一步的,在本发明其中一可选实施例中,所述版本文件为加密文件。
本实施例中,可以通过非对称加密算法为版本文件进行加密。通过对版本文件进行加密,能够提高版本文件的私密性和信息的安全性,使得软件源码的版本信息不会被泄露和篡改。
S40,将所述待打包文件进行打包,得到所述软件源码对应的软件包。
在本实施例中,可以通过打包工具进行打包,具体的,可以在打包时通过打包工具的打包插件将软件源码的版本文件注入到生成的软件包中。在打包得到的软件包中,包含所述可执行程序和所述版本文件。
进一步的,在本发明其中一可选实施例中,在得到该软件包之后,通过读取脚本读取该软件包中版本文件的内容,可获取软件源码的版本信息。
进一步的,在本发明其中一可选实施例中,所述软件包还包括所述软件源码的版本管理SDK,所述版本管理SDK用于解析所述版本文件,获取所述版本文件包含的信息。
一可选实施例中,软件源码的版本管理SDK的代码与软件源码一同编译,得到软件源码的同时也生成版本管理SDK,即待打包文件中包含软件源码的版本管理SDK,则打包时,同步将该版本管理SDK进行打包,得到包含版本管理SDK的软件包。
另一可选实施例中,可以对待打包文件进行软件打包时,获取软件源码的版本管理SDK,调用打包插件将软件源码的版本管理SDK注入到软件包中,则生成的软件包中包含软件源码的版本管理SDK。
在本发明其中一可选实施例中,版本管理SDK是可以直接独立运行的可执行程序。
当版本文件为加密文件时,版本管理SDK用于解密版本文件,以及解析获取版本文件中包含的信息。
在本发明其中一可选实施例中,版本管理SDK具体用于接收通过命令行、函数调用、http接口等方式发送的版本信息查询指令,进而解析版本文件,获取版本文件包含的信息。
具体的,版本管理SDK可以是根据不同编程语言预定义的一套版本管理管理的数据结构可对数据集进行操作的操作集,则可以为不同编程语言开发的应用提供函数调用接口。
本实施例通过在软件包中包含用于解析版本文件,获取版本文件包含的信息的软件管理SDK,提供了快速查询源码版本的技术工具,有利于快速便捷地查询软件源码的版本信息。
本发明实施例中,获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;将所述待打包文件进行打包,得到所述软件源码对应的软件包。通过在软件打包时,将软件源码的版本文件一并打包到软件包中,从而针对每个软件包可以快速准确地获取该软件包对应的软件源码的版本信息。
本发明第二实施例提供一种软件打包方法,其与第一实施例提供的软件打包方法的区别在于通过将软件源码与软件源码的版本信息同时编译的方式得到软件源码的待打包文件。具体的,参阅图2所示,本发明第二实施例提供的软件打包方法,包括:
S21,获取所述软件源码以及所述软件源码的版本信息;
S22,将所述软件源码以及所述软件源码的版本信息进行编译,得到软件源码的待打包文件,所述待打包文件包括编译所述软件源码得到的所述软件源码的可执行程序和编译所述版本信息得到的所述软件源码的版本文件;
S40,将所述待打包文件进行打包,得到所述软件源码对应的软件包。
在本实施例中,可以调用编译插件进行编译,在编译时对软件源码进行编译生成可执行程序,同时,利用编译插件基于软件源码的版本信息生成软件源码的版本文件。
本实施例通过在编译时,同步生成软件源码的可执行程序和软件源码的版本文件,有利于快速的打包,无需在打包时再查找软件源码的版本文件或版本信息文件。
进一步的,在本发明其中一可选实施例中,所述版本文件还包括与编译所述软件源码相关的信息。
本实施例中,与编译所述软件源码相关的信息包括但不限于编译用户信息(如编译人员的账号)、编译时间、编译的操作系统版本、编译的主机名、编译器信息(如编译器的版本、类型等信息)运行编译器的虚拟机信息、环境变量。
在本实施例通过在编译生成软件源码的版本文件时,同步写入与编译的相关信息,能够不增加额外成本的情况下,最大限度保存软件源码的相关信息,有利于为软件包和软件源码的维护和升级提供真实有效的信息。
例如,当软件包产生异常或者功能不正常时,通过获取版本文件里记录的信息,就可快速地定位问题的原因是源码问题,还是编译的服务器配置问题,还是软件版本被替换成了其他开发人员的自测版本。
本实施例中S40步骤与第一实施例中的S40大体相同,在此不再赘述。
本实施例通过在编译阶段就将软件源码以及软件源码的版本信息同步编译,使得待打包文件中包含由编译版本信息得到的软件源码的版本文件,无需在打包时再查找软件源码的版本信息,有利于快速打包。
本发明第三实施例提供一种软件打包方法,其与第二实施例提供的软件打包方法的区别在于通过将软件源码与软件源码的版本信息同时编译的方式得到软件源码的待打包文件。具体的,参阅图3所示,本发明第三实施例提供的软件打包方法,包括:
S211,从代码仓库获取软件源码;
S212,从所述代码仓库中所述软件源码对应的源码节点获取所述软件源码的版本信息;
S22,将所述软件源码以及所述软件源码的版本信息进行编译,得到软件源码的待打包文件;
S40,将所述待打包文件进行打包,得到所述软件源码对应的软件包。
本实施例中,所述代码仓库为存储软件源码的存储区。具体的,代码仓库可以为任意代码管理软件。例如,代码仓库为Github。
在本实施例中,可以根据软件源码在代码仓库中的存储地址从代码仓库获取软件源码,并获取该软件源码对应的源码节点中软件源码的版本信息。
本实施例中,软件源码的版本信息具体可以包括代码仓库的类型、软件源码在代码仓库路径。
本实施例中S22步骤和S40步骤与第二实施例中的S22和S40大体相同,在此不再赘述。
在本实施例中,从代码仓库获取软件源码,并同步获取软件源码的版本信息,无需人工记录,就能够快速准确地获取到软件源码的版本信息,从而提高了编译结果中版本文件和软件包中版本文件所包含的版本信息的准确性。
请参见图4,图4为第四实施例提供的源码版本信息获取方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。本实施例中源码版本信息获取方法包括:
S60,接收查询软件包对应的软件源码的版本信息的指令。
本实施例中,所述软件包为根据前述软件打包方法实施例得到的软件包。在该软件包中包括软件源码的可执行程序以及软件源码的版本文件。
进一步的,在本发明其中一可选实施例中,所述接收查询软件包对应的软件源码的版本信息的指令包括:
通过启动http服务器接收http客户端触发的查询软件包对应的软件源码的版本信息的指令;或者
接收用户在DOS窗口中输入的查询软件包对应的软件源码的版本信息的操作系统指令;或者
接收预设应用发送的查询软件包对应的软件源码的版本信息的指令。
在本实施例中,可以通过操作系统命令行、浏览器以及第三方应用调用的方式,触发获取软件包中的软件源码的版本文件的操作。
例如,启动http服务器之后检测http客户端输入的信息或点击的可操作性控件,获取版本文件包含的信息,并向http客户端返回版本文件包含的信息,从而可以使得用户快速的获取到软件源码的版本信息。
本实施例通过启动http服务器,以http客户端的形式接收查询软件包对应的软件源码的版本信息的指令,实现了基于网络快速查询和获取软件源码的版本信息的目的。
本实施例中,预设应用可以是其他业务软件,例如用于软件升级的app、版本配套的app。具体的,预设应用可以通过函数调用的方式发送该查询软件包对应的软件源码的版本信息的指令。
S80,解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。
本实施例中,若接收到用户输入的查询软件包对应的软件源码的版本信息的操作系统指令之后,调用操作系统函数接口解析软件包中软件源码的版本文件,获取所述软件源码的版本信息;若接收到预设应用发送的查询软件包对应的软件源码的版本信息的指令,调用第三方函数服务接口解析软件包中软件源码的版本文件,获取所述软件源码的版本信息。
进一步的,所述解析所述软件包中所述软件源码的版本文件包括:
通过所述软件包中所述软件源码的版本管理软件开发工具包SDK解析所述软件包中所述软件源码的版本文件。在本实施例中,运行软件源码的版本管理SDK,通过该版本管理SDK读取并解析软件包中软件源码的版本文件。
进一步的,若版本文件为加密文件,则在解析版本文件之前,对版本文件进行解密。
进一步的,在本发明另一可选实施例中,所述获取所述软件源码的版本信息之后,所述方法还包括:根据所述软件源码的版本信息获取所述软件包对应的软件源码。
具体地,可以根据软件源码的版本信息从代码仓库中查询并获取软件包对应的软件源码。
本发明实施例中,接收查询软件包对应的软件源码的版本信息的指令,解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。无需人工从大量的对应关系中查询,就能够快速准确地获取到软件源码的版本信息,也有利于根据获取到的软件源码的版本信息快速准确地获取到软件源码。
请参考图5,图5为本发明第五实施例提供的软件打包装置50的结构示意图。本实施方式中的软件打包装置包括:
打包文件获取模块510,用于获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息。
本实施例中,所述软件源码为应用软件的开发代码。该软件源码可以是由任意编程语言所编写的开发程序,例如软件源码为C++或者Java语言或Python语言编写的程序。
本实施例中,软件源码的可执行程序可以由软件源码通过编译器编译得到,所述软件源码的版本文件可以从本地存储空间中获取,也可以是基于从存储软件源码的代码仓库中获取到的软件源码的版本信息预先生成的。
进一步的,所述软件源码的版本信息包括但不限于软件源码的存储地址、软件源码的版本、软件源码的分支、软件源码的修改人、软件源码的修改注释。
进一步的,在本发明其中一可选实施例中,所述版本文件为加密文件。
本实施例中,可以通过非对称加密算法为版本文件进行加密。通过对版本文件进行加密,能够提高版本文件的私密性和信息的安全性,使得软件源码的版本信息不会被泄露和篡改。
打包模块520,用于将所述待打包文件进行打包,得到所述软件源码对应的软件包。
在本实施例中,可以通过打包工具进行打包,具体的,可以在打包时通过打包工具的打包插件将软件源码的版本文件注入到生成的软件包中。在打包得到的软件包中,包含所述可执行程序和所述版本文件。
进一步的,在本发明其中一可选实施例中,在得到该软件包之后,通过读取脚本读取该软件包中版本文件的内容,可获取软件源码的版本信息。
进一步的,在本发明其中一可选实施例中,所述软件包还包括所述软件源码的版本管理SDK,所述版本管理SDK用于解析所述版本文件,获取所述版本文件包含的信息。
一可选实施例中,软件源码的版本管理SDK的代码与软件源码一同编译,得到软件源码的同时也生成版本管理SDK,即待打包文件中包含软件源码的版本管理SDK,则打包时,同步将该版本管理SDK进行打包,得到包含版本管理SDK的软件包。
另一可选实施例中,可以对待打包文件进行软件打包时,获取软件源码的版本管理SDK,调用打包插件将软件源码的版本管理SDK注入到软件包中,则生成的软件包中包含软件源码的版本管理SDK。
在本发明其中一可选实施例中,版本管理SDK是可以直接独立运行的可执行程序。
当版本文件为加密文件时,版本管理SDK用于解密版本文件,以及解析获取版本文件中包含的信息。
在本发明其中一可选实施例中,版本管理SDK具体用于接收通过命令行、函数调用、http接口等方式发送的版本信息查询指令,进而解析版本文件,获取版本文件包含的信息。
具体的,版本管理SDK可以是根据不同编程语言预定义的一套版本管理管理的数据结构可对数据集进行操作的操作集,则可以为不同编程语言开发的应用提供函数调用接口。
本实施例通过在软件包中包含用于解析版本文件,获取版本文件包含的信息的软件管理SDK,提供了快速查询源码版本的技术工具,有利于快速便捷地查询软件源码的版本信息。
本发明实施例中,获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;将所述待打包文件进行打包,得到所述软件源码对应的软件包。通过在软件打包时,将软件源码的版本文件一并打包到软件包中,从而针对每个软件包可以快速准确地获取该软件包对应的软件源码的版本信息。
本发明第六实施例提供一种软件打包装置,其与第五实施例提供的软件打包装置区别在于通过将软件源码与软件源码的版本信息同时编译的方式得到软件源码的待打包文件。具体的,参阅图6所示,本发明第六实施例提供的软件打包装置50,包括:打包文件获取模块510和打包模块520,其中,打包文件获取模块510包括编译文件获取单元511和编译单元512。具体的:
编译文件获取单元511,用于获取所述软件源码以及所述软件源码的版本信息;
编译单元512,用于将所述软件源码以及所述软件源码的版本信息进行编译,得到软件源码的待打包文件,所述待打包文件包括编译所述软件源码得到的所述软件源码的可执行程序和编译所述版本信息得到的所述软件源码的版本文件;
打包模块520,用于将所述待打包文件进行打包,得到所述软件源码对应的软件包。
在本实施例中,可以调用编译插件进行编译,在编译时对软件源码进行编译生成可执行程序,并基于软件源码的版本信息生成软件源码的版本文件。
本实施例通过在编译时,同步生成软件源码的可执行程序和软件源码的版本文件,有利于快速的打包,无需在打包时再查找软件源码的版本文件或版本信息文件。
进一步的,所述编译文件获取单元511具体用于:从代码仓库获取所述软件源码;从所述代码仓库中所述软件源码对应的源码节点获取所述软件源码的版本信息。
本实施例中,所述代码仓库为存储软件源码的存储区。具体的,代码仓库可以为任意代码管理软件。例如,代码仓库为Github。
在本实施例中,可以根据软件源码在代码仓库中的存储地址从代码仓库获取软件源码,并获取该软件源码对应的源码节点中软件源码的版本信息。
本实施例中,软件源码的版本信息具体可以包括代码仓库的类型、软件源码在代码仓库路径。
在本实施例中,从代码仓库获取软件源码,并同步获取软件源码的版本信息,无需人工记录,就能够快速准确地获取到软件源码的版本信息,从而提高了编译结果中版本文件和软件包中版本文件所包含的版本信息的准确性。
进一步的,在本发明其中一可选实施例中,所述版本文件还包括与编译所述软件源码相关的信息。
本实施例中,与编译所述软件源码相关的信息包括但不限于编译用户信息(如编译人员的账号)、编译时间、编译的操作系统版本、编译的主机名、编译器信息(如编译器的版本、类型等信息)运行编译器的虚拟机信息、环境变量。
在本实施例通过在编译生成软件源码的版本文件时,同步写入与编译的相关信息,能够不增加额外成本的情况下,最大限度保存软件源码的相关信息,有利于为软件包和软件源码的维护和升级提供真实有效的信息。
例如,当软件包产生异常或者功能不正常时,通过获取版本文件里记录的信息,就可快速地定位问题的原因是源码问题,还是编译的服务器配置问题,还是软件版本被替换成了其他开发人员的自测版本。
本实施例中打包模块520与第五实施例中的打包模块520大体相同,在此不再赘述。
本实施例通过在编译阶段就将软件源码以及软件源码的版本信息同步编译,使得待打包文件中包含由编译版本信息得到的软件源码的版本文件,无需在打包时再查找软件源码的版本信息,有利于快速打包。
请参考图7,图7为本发明第七实施例提供的源码版本信息获取装置70的结构示意图。本实施方式中的源码获取装置包括:
指令接收模块710,用于接收查询软件包对应的软件源码的版本信息的指令。
本实施例中,所述软件包为根据前述软件打包方法实施例得到的软件包。在该软件包中包括软件源码的可执行程序以及软件源码的版本文件。
进一步的,在本发明其中一可选实施例中,所述指令接收模块710具体用于:
通过启动http服务器接收http客户端触发的查询软件包对应的软件源码的版本信息的指令;或者
接收用户在DOS窗口中输入的查询软件包对应的软件源码的版本信息的操作系统指令;或者
接收预设应用发送的查询软件包对应的软件源码的版本信息的指令。
在本实施例中,可以通过操作系统命令行、浏览器以及其他软件调用的方式,触发获取软件包中的软件源码的版本文件的操作。
例如,启动http服务器之后检测http客户端输入的信息或点击的可操作性控件,获取版本文件包含的信息,并向http客户端返回版本文件包含的信息,从而可以使得用户快速的获取到软件源码的版本信息。
本实施例通过启动http服务器,以http客户端的形式接收查询软件包对应的软件源码的版本信息的指令,实现了基于网络快速查询和获取软件源码的版本信息的目的。
本实施例中,预设应用可以是其他业务软件,例如用于软件升级的app、版本配套的app。具体的,预设应用可以通过函数调用的方式发送该查询软件包对应的软件源码的版本信息的指令。
解析模块720,用于解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。
本实施例中,若接收到用户输入的查询软件包对应的软件源码的版本信息的操作系统指令之后,调用操作系统函数接口解析软件包中软件源码的版本文件,获取所述软件源码的版本信息;若接收到预设应用发送的查询软件包对应的软件源码的版本信息的指令,调用第三方函数服务接口解析软件包中软件源码的版本文件,获取所述软件源码的版本信息。
解析模块720具体用于:通过所述软件包中所述软件源码的版本管理软件开发工具包SDK解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。
在本实施例中,运行软件源码的版本管理SDK,通过该版本管理SDK读取并解析软件包中软件源码的版本文件。
进一步的,若版本文件为加密文件,则在解析版本文件之前,对版本文件进行解密。
进一步的,在本发明另一可选实施例中,所述解析模块720还用于:获取所述软件源码的版本信息之后,根据所述软件源码的版本信息获取所述软件包对应的软件源码。
具体地,可以根据软件源码的版本信息从代码仓库中查询并获取软件包对应的软件源码。
本发明实施例中,接收查询软件包对应的软件源码的版本信息的指令,解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。无需人工从大量的对应关系中查询,就能够快速准确地获取到软件源码的版本信息,也有利于根据获取到的软件源码的版本信息快速准确地获取到软件源码。
本发明第八实施例还提供一种电子设备。图8为本发明第八实施例提供的电子设备的内部结构示意图。
在本实施例中,所述电子设备8可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、便携计算机等终端设备,也可以是一种服务器等。该电子设备8至少包括存储器81、处理器82,通信总线83,以及网络接口84。
其中,存储器81至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器81在一些实施例中可以是电子设备8的内部存储单元,例如该电子设备8的硬盘。存储器81在另一些实施例中也可以是电子设备8的外部存储设备,例如电子设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器81还可以既包括电子设备8的内部存储单元也包括外部存储设备。存储器81不仅可以用于存储安装于电子设备8的应用软件及各类数据,例如软件打包程序08的代码或源码版本信息获取程序09的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器82在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器81中存储的程序代码或处理数据,例如执行软件打包程序08或源码版本信息获取程序09等。
通信总线83用于实现这些组件之间的连接通信。
网络接口84可选地可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该电子设备8与其他电子设备之间建立通信连接。
可选地,该电子设备8还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选地用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备8中处理的信息以及用于显示可视化的用户界面。
图8仅示出了具有组件81-84以及软件打包程序08的电子设备8,本领域技术人员可以理解的是,图8示出的结构并不构成对电子设备8的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图8所示的电子设备8实施例中,存储器81中存储有软件打包程序08;处理器82执行存储器81中存储的软件打包程序08时实现如下步骤:
步骤一、获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;
步骤二、将所述待打包文件进行打包,得到所述软件源码对应的软件包。
在图8所示的电子设备8实施例中,存储器81中存储有软件打包程序08;处理器82执行存储器81中存储的源码版本信息获取程序09时实现如下步骤:
接收查询软件包对应的软件源码的版本信息的指令,所述软件包为根据权利要求1至5任一项所述的软件打包方法得到的;
解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
此外,本发明第十实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有软件打包程序或源码版本信息获取程序,所述软件打包程序可被一个或多个处理器执行,以实现如下操作:
获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;
将所述待打包文件进行打包,得到所述软件源码对应的软件包。
所述源码版本信息获取程序可被一个或多个处理器执行,以实现如下操作:
接收查询软件包对应的软件源码的版本信息的指令,所述软件包为根据权利要求1至5任一项所述的软件打包方法得到的;
解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种软件打包方法,其特征在于,包括:
获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;
将所述待打包文件进行打包,得到所述软件源码对应的软件包。
2.如权利要求1所述的方法,其特征在于,所述软件包还包括所述软件源码的版本管理软件开发工具包SDK,所述版本管理SDK用于解析所述版本文件,获取所述版本文件包含的信息。
3.如权利要求1或2所述的方法,其特征在于,所述获取软件源码的待打包文件,包括:
获取所述软件源码以及所述软件源码的版本信息;
将所述软件源码以及所述软件源码的版本信息进行编译,得到所述软件源码的待打包文件,所述待打包文件包括编译所述软件源码得到的所述软件源码的可执行程序和编译所述版本信息得到的所述软件源码的版本文件。
4.如权利要求3所述的方法,其特征在于,所述版本文件还包括与编译所述软件源码相关的信息。
5.如权利要求3所述的方法,其特征在于,所述获取所述软件源码以及所述软件源码的版本信息,包括:
从代码仓库获取所述软件源码;
从所述代码仓库中所述软件源码对应的源码节点获取所述软件源码的版本信息。
6.一种源码版本信息获取方法,其特征在于,包括:
接收查询软件包对应的软件源码的版本信息的指令,所述软件包为根据权利要求1至5任一项所述的软件打包方法得到的;
解析所述软件包中所述软件源码的版本文件,获取所述软件源码的版本信息。
7.如权利要求6所述的方法,其特征在于,所述解析所述软件包中所述软件源码的版本文件包括:
通过所述软件包中所述软件源码的版本管理软件开发工具包SDK解析所述软件包中所述软件源码的版本文件。
8.如权利要求6所述的方法,其特征在于,所述接收查询软件包对应的软件源码的版本信息的指令包括:
通过启动http服务器接收http客户端触发的查询软件包对应的软件源码的版本信息的指令;或者
接收用户在DOS窗口中输入的查询软件包对应的软件源码的版本信息的操作系统指令;或者
接收预设应用发送的查询软件包对应的软件源码的版本信息的指令。
9.一种软件打包装置,其特征在于,所述装置包括:
打包文件获取模块,用于获取软件源码的待打包文件,所述待打包文件包括所述软件源码的可执行程序和所述软件源码的版本文件,所述软件源码的版本文件包含所述软件源码的版本信息;
打包模块,用于将所述待打包文件进行打包,得到所述软件源码对应的软件包。
10.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任一所述的软件打包方法,或如权利要求6至8中任一项所述的源码版本信息获取方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的软件打包方法,或如权利要求6至8中任一项所述的源码版本信息获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010494258.7A CN111782239B (zh) | 2020-06-03 | 2020-06-03 | 软件打包和源码版本信息获取方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010494258.7A CN111782239B (zh) | 2020-06-03 | 2020-06-03 | 软件打包和源码版本信息获取方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782239A true CN111782239A (zh) | 2020-10-16 |
CN111782239B CN111782239B (zh) | 2023-07-11 |
Family
ID=72753679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010494258.7A Active CN111782239B (zh) | 2020-06-03 | 2020-06-03 | 软件打包和源码版本信息获取方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782239B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783533A (zh) * | 2021-02-03 | 2021-05-11 | 北京达佳互联信息技术有限公司 | 版本信息更新方法、装置、终端及存储介质 |
CN113204347A (zh) * | 2021-04-02 | 2021-08-03 | 北京易捷思达科技发展有限公司 | 适用于软件包的处理方法、装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050762A1 (en) * | 2004-04-06 | 2007-03-01 | Shao-Chun Chen | Build optimizer tool for efficient management of software builds for mobile devices |
US20070220496A1 (en) * | 2006-03-20 | 2007-09-20 | Fujitsu Limited | Multiple operating device version software generating device and multiple operating device version software generation support program and method |
CN102915233A (zh) * | 2011-08-03 | 2013-02-06 | 腾讯科技(深圳)有限公司 | 软件程序的基线版本管理方法及系统 |
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN109086071A (zh) * | 2018-08-22 | 2018-12-25 | 平安普惠企业管理有限公司 | 一种管理软件版本信息的方法及服务器 |
US20190065179A1 (en) * | 2017-08-30 | 2019-02-28 | Microsoft Technology Licensing, Llc | Software Feature Compilation with Runtime Configuration |
CN109426516A (zh) * | 2017-06-21 | 2019-03-05 | 北京信威通信技术股份有限公司 | 软件版本管理方法及装置 |
US20190087550A1 (en) * | 2017-09-15 | 2019-03-21 | Insignary Inc. | Method and system for identifying open-source software package based on binary files |
CN110780916A (zh) * | 2019-09-09 | 2020-02-11 | 国电南瑞科技股份有限公司 | 一种电网调度控制系统的软件运维方法、装置和系统 |
CN110990020A (zh) * | 2019-11-24 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种软件编译方法、装置及电子设备和存储介质 |
-
2020
- 2020-06-03 CN CN202010494258.7A patent/CN111782239B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050762A1 (en) * | 2004-04-06 | 2007-03-01 | Shao-Chun Chen | Build optimizer tool for efficient management of software builds for mobile devices |
US20070220496A1 (en) * | 2006-03-20 | 2007-09-20 | Fujitsu Limited | Multiple operating device version software generating device and multiple operating device version software generation support program and method |
CN102915233A (zh) * | 2011-08-03 | 2013-02-06 | 腾讯科技(深圳)有限公司 | 软件程序的基线版本管理方法及系统 |
CN109426516A (zh) * | 2017-06-21 | 2019-03-05 | 北京信威通信技术股份有限公司 | 软件版本管理方法及装置 |
US20190065179A1 (en) * | 2017-08-30 | 2019-02-28 | Microsoft Technology Licensing, Llc | Software Feature Compilation with Runtime Configuration |
US20190087550A1 (en) * | 2017-09-15 | 2019-03-21 | Insignary Inc. | Method and system for identifying open-source software package based on binary files |
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN109086071A (zh) * | 2018-08-22 | 2018-12-25 | 平安普惠企业管理有限公司 | 一种管理软件版本信息的方法及服务器 |
CN110780916A (zh) * | 2019-09-09 | 2020-02-11 | 国电南瑞科技股份有限公司 | 一种电网调度控制系统的软件运维方法、装置和系统 |
CN110990020A (zh) * | 2019-11-24 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种软件编译方法、装置及电子设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
10KM: "maven:读取程序版本号的三种方案", 《HTTPS://BLOG.CSDN.NET/10KM/ARTICLE/DETAILS/79013499》 * |
沙漠豪: "把SVN版本号、编译时间信息自动打包到jar和war中", 《HTTPS://BLOG.CSDN.NET/ZAZZH007/ARTICLE/DETAILS/89952706》 * |
贺志鹏: "Jenkins+gradle+svn+windows自动化编", 《HTTPS://GITHUB.COM/HEZHIPENGZIPP/JENKINS》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783533A (zh) * | 2021-02-03 | 2021-05-11 | 北京达佳互联信息技术有限公司 | 版本信息更新方法、装置、终端及存储介质 |
CN113204347A (zh) * | 2021-04-02 | 2021-08-03 | 北京易捷思达科技发展有限公司 | 适用于软件包的处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111782239B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451474B (zh) | 用于终端的软件漏洞修复方法和装置 | |
CN108229112B (zh) | 一种保护应用程序、应用程序的运行方法以及装置 | |
US8627303B2 (en) | Memory optimization of virtual machine code by partitioning extraneous information | |
CN111680253B (zh) | 页面应用数据包生成方法、装置、计算机设备及存储介质 | |
CN111240684B (zh) | 一种js代码的裁剪方法、装置、介质和电子设备 | |
US20150052611A1 (en) | Method and device for extracting characteristic code of apk virus | |
EP3234851B1 (en) | A system and method for facilitating static analysis of software applications | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
CN111694613B (zh) | 应用程序模块间的解耦方法、电子装置及存储介质 | |
CN111459495A (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
CN113835713B (zh) | 源码包下载方法、装置、计算机设备和存储介质 | |
CN112527386B (zh) | 应用程序发布方法及装置 | |
CN110673837B (zh) | 代码修复方法及装置、电子设备、计算机可读存储介质 | |
CN112769706B (zh) | 组件化路由方法及系统 | |
CN111782239B (zh) | 软件打包和源码版本信息获取方法、装置及存储介质 | |
CN112612502A (zh) | 补丁生成方法、装置、设备及存储介质 | |
CN113268245A (zh) | 代码分析方法、装置及存储介质 | |
CN112052433A (zh) | 一种Jar文件的虚拟化保护方法、终端及存储介质 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN114356779A (zh) | 编程语言调试方法、装置及终端设备 | |
CN115686606A (zh) | 一种项目依赖树的展示方法、装置、系统及介质 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
US9244982B2 (en) | Static analysis of PL/SQL objects and SQL queries | |
CN111158777A (zh) | 组件调用方法、装置及计算机可读存储介质 | |
CN113568678B (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 |