CN111273940A - 将程序文件上传至代码仓库的方法及装置 - Google Patents

将程序文件上传至代码仓库的方法及装置 Download PDF

Info

Publication number
CN111273940A
CN111273940A CN201811481916.8A CN201811481916A CN111273940A CN 111273940 A CN111273940 A CN 111273940A CN 201811481916 A CN201811481916 A CN 201811481916A CN 111273940 A CN111273940 A CN 111273940A
Authority
CN
China
Prior art keywords
file
uploaded
program file
uploading
program
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
Application number
CN201811481916.8A
Other languages
English (en)
Other versions
CN111273940B (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.)
3600 Technology Group Co ltd
Original Assignee
Beijing Qihoo 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 Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201811481916.8A priority Critical patent/CN111273940B/zh
Publication of CN111273940A publication Critical patent/CN111273940A/zh
Application granted granted Critical
Publication of CN111273940B publication Critical patent/CN111273940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本发明公开了一种将程序文件上传至代码仓库的方法及装置。其中,该方法包括:获取待上传的程序文件的文件属性信息;根据所述待上传的程序文件的文件属性信息确定所述待上传的程序文件的存储路径;根据所述待上传的程序文件的存储路径获取所述待上传的程序文件,将获取到的所述待上传的程序文件上传至代码仓库。该方式能够向代码仓库中上传各类程序文件,不受项目类型的制约。例如,对于安卓库项目而言,通过该方式能够直接上传Jar包文件。由此可见,该上传方式灵活性较高,能够支持自定义类型的文件上传操作。

Description

将程序文件上传至代码仓库的方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种将程序文件上传至代码仓库的方法及装置。
背景技术
为了提升程序文件的用户量,通常需要将已生成的程序文件上传至指定的代码仓库,由该代码仓库通过预设的访问接口实现程序文件的共享。由于第三方的代码仓库具有大量的用户,且提供了各类规范化的访问接口,因此,借助第三方的代码仓库有利于提升程序文件的下载量。
在现有技术中,为了便于用户使用,第三方的代码仓库通常会提供对应的上传插件,该上传插件通常能够支持多种类型的项目,以确保通过常规类型的项目编写的程序文件能够通过该上传插件快速上传至代码仓库。具体地,该上传插件读取项目类型信息,然后根据与项目类型信息相匹配的上传任务执行上传操作。其中,该上传插件针对不同类型的项目需要上传不同类型的程序文件。例如,对于Java项目而言,需要上传Jar包文件;对于安卓APK而言,需要上传APK包文件;对于安卓库项目而言,需要上传Aar包文件;对于后端程序而言,需要上传War包文件。
但是,发明人在实现本发明的过程中发现,上述方式至少存在如下局限性:该上传插件针对指定类型的项目只能上传与该项目类型相对应的程序文件。然而,在实际情况中,开发人员可能会出于各种原因希望向代码仓库中上传与该项目类型非对应的程序文件,此时,通过上传插件则无法实现。例如,对于安卓库项目而言,通过该上传插件只能上传Aar包文件,但是,在实际开发中,可能希望上传Jar包文件,上传插件则无法支持该需求。由此可见,现有的上传插件不够灵活,无法支持自定义类型的文件上传操作。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的将程序文件上传至代码仓库的方法及装置。
根据本发明的一个方面,提供了一种将程序文件上传至代码仓库的方法,包括:
获取待上传的程序文件的文件属性信息;
根据所述待上传的程序文件的文件属性信息确定所述待上传的程序文件的存储路径;
根据所述待上传的程序文件的存储路径获取所述待上传的程序文件,将获取到的所述待上传的程序文件上传至代码仓库。
根据本发明的又一个方面,提供了一种将程序文件上传至代码仓库的装置,包括:
获取模块,适于获取待上传的程序文件的文件属性信息;
确定模块,适于根据所述待上传的程序文件的文件属性信息确定所述待上传的程序文件的存储路径;
上传模块,适于根据所述待上传的程序文件的存储路径获取所述待上传的程序文件,将获取到的所述待上传的程序文件上传至代码仓库。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述将程序文件上传至代码仓库的方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述将程序文件上传至代码仓库的方法对应的操作。
在本发明公开的将程序文件上传至代码仓库的方法及装置中,能够获取待上传的程序文件的文件属性信息,并根据待上传的程序文件的文件属性信息确定待上传的程序文件的存储路径,以便根据待上传的程序文件的存储路径获取待上传的程序文件,从而将获取到的待上传的程序文件上传至代码仓库。由此可见,该方式能够打破代码仓库提供的上传插件中的文件类型限制,直接获取待上传的程序文件的文件属性信息,并根据该文件属性信息确定待上传的程序文件的存储路径,从而实现上传操作。该方式能够向代码仓库中上传各类程序文件,不受项目类型的制约。例如,对于安卓库项目而言,通过该方式能够直接上传Jar包文件。由此可见,该上传方式灵活性较高,能够支持自定义类型的文件上传操作。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明一个实施例的将程序文件上传至代码仓库的方法的流程示意图;
图2示出了本发明另一个实施例的将程序文件上传至代码仓库的方法的流程示意图;
图3示出了本发明又一实施例的一种将程序文件上传至代码仓库的装置的装置结构图;
图4示出了根据本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一、
图1示出了本发明一个实施例的将程序文件上传至代码仓库的方法的流程示意图。如图1所示,该方法包括:
步骤S110:获取待上传的程序文件的文件属性信息。
其中,待上传的程序文件可以为各种类型的文件,例如,可以是Jar包文件、APK包文件、Aar包文件或War包文件等。待上传的程序文件的文件属性信息是指:能够用于识别待上传的程序文件和/或能够用于确定待上传的程序文件的存储路径的信息。本发明不限定文件属性信息的具体内涵,凡是能够实现上述目的的信息均可作为文件属性信息。例如,文件属性信息可通过文件存储路径信息或文件名称信息表示。
步骤S120:根据待上传的程序文件的文件属性信息确定待上传的程序文件的存储路径。
由于待上传的程序文件的文件属性信息能够用于确定待上传的程序文件的存储路径,因此,在获取到待上传的程序文件的文件属性信息之后,即可根据该文件属性信息确定待上传的程序文件的存储路径。例如,当文件属性信息为文件存储路径信息时,直接根据文件属性信息的具体内容即可确定待上传的程序文件的存储路径。又如,当文件属性信息为文件名称信息时,可通过该文件名称信息执行搜索操作,并根据搜索操作结果确定待上传的程序文件的存储路径。
步骤S130:根据待上传的程序文件的存储路径获取待上传的程序文件,将获取到的待上传的程序文件上传至代码仓库。
由于上一步骤中已经确定了待上传的程序文件的存储路径,因此,在本步骤中,能够根据待上传的程序文件的存储路径获取待上传的程序文件。具体地,通过读取上述存储路径下的各个文件的方式获取。在获取到待上传的程序文件后,通过调用代码仓库提供的访问接口即可将获取到的程序文件上传至代码仓库。
由此可见,在本发明公开的将程序文件上传至代码仓库的方法中,能够获取待上传的程序文件的文件属性信息,并根据待上传的程序文件的文件属性信息确定待上传的程序文件的存储路径,以便根据待上传的程序文件的存储路径获取待上传的程序文件,从而将获取到的待上传的程序文件上传至代码仓库。由此可见,该方式能够打破代码仓库提供的上传插件中的文件类型限制,直接获取待上传的程序文件的文件属性信息,并根据该文件属性信息确定待上传的程序文件的存储路径,从而实现上传操作。该方式能够向代码仓库中上传各类程序文件,不受项目类型的制约。例如,对于安卓库项目而言,通过该方式能够直接上传Jar包文件。由此可见,该上传方式灵活性较高,能够支持自定义类型的文件上传操作。
实施例二、
图2示出了本发明另一个实施例的将程序文件上传至代码仓库的方法的流程示意图。在本实施例中,以待上传的程序文件对应于安卓库项目为例进行描述,并且,在本实施例中,代码仓库为JCenter仓库。在通过JCenter仓库提供的JCenter上传插件实现安卓库项目对应的程序文件的上传操作时,需要上传Aar包文件。但是,在本实施例中,希望直接上传Jar包文件,而不上传Aar包中包含的资源文件。为了实现灵活上传任意类型的文件的目的,在本实施例中,提供了一套不同于官方的JCenter上传插件的自定义插件,通过该自定义插件即可实现本实施例中的上传操作。
发明人在实现本发明的过程中发现:JCenter仓库所对应的用于实现文件上传功能的开源插件(即JCenter上传插件)之所以仅能够针对特定类型的项目上传特定类型的文件,本质上是由于该JCenter上传插件与第三方插件之间存在特定的关联关系(或称耦合关系)。该第三方插件包括各类插件,例如,包括:第三方项目插件、第三方应用插件等等。具体到本实施例中,JCenter上传插件与安卓项目插件之间存在耦合关系,正是基于JCenter上传插件与安卓项目插件之间的耦合关系,才导致JCenter上传插件针对安卓项目执行上传操作时,只能上传Aar包。因此,为了使该自定义插件能够灵活支持各种类型的文件上传操作,而不受项目类型等外界因素的影响,该自定义插件与第三方插件解耦。其中,该第三方插件主要包括:与JCenter仓库所对应的用于实现文件上传功能的开源插件之间存在耦合关系的插件,例如上文提到的安卓项目插件。
如图2所示,该方法具体包括以下步骤:
步骤S210:通过预设的可配置上传参数接收用户配置的待上传的程序文件的文件属性信息,以便通过读取该预设的可配置上传参数的参数值来获取待上传的程序文件的文件属性信息。
具体地,在本实施例中,为了实现文件路径的可配置化操作,预先设置有可配置上传参数,该可配置上传参数可通过字段形式表示,主要用于接收用户配置的待上传的程序文件的文件属性信息。当接收到用户配置的待上传的程序文件的文件属性信息后,该可配置上传参数的参数值被赋值为与该文件属性信息相对应的数值,相应地,通过读取该可配置上传参数的参数值即可获取待上传的程序文件的文件属性信息。
由于该可配置上传参数的参数值能够随各次接收到的用户配置的待上传的程序文件的文件属性信息而变化,因此,每次上传操作均可由用户灵活配置待上传的程序文件的文件属性信息,从而实现灵活上传各类文件的目的。其中,程序文件的文件属性信息包括以下中的至少一个:文件存储路径信息、文件名称信息、文件格式信息以及文件类型信息等。在本实施例中,以文件属性信息为文件存储路径信息为例进行说明。
步骤S220:根据待上传的程序文件的文件属性信息确定待上传的程序文件的存储路径。
由于待上传的程序文件的文件属性信息能够用于确定待上传的程序文件的存储路径,因此,在获取到待上传的程序文件的文件属性信息之后,即可根据该文件属性信息确定待上传的程序文件的存储路径。具体到本实施例中,由于文件属性信息为文件存储路径信息,因此直接根据文件属性信息的具体内容即可确定待上传的程序文件的存储路径。
步骤S230:根据待上传的程序文件的存储路径获取待上传的程序文件。
由于上一步骤中已经确定了待上传的程序文件的存储路径,因此,在本步骤中,能够根据待上传的程序文件的存储路径获取待上传的程序文件。具体地,通过读取上述存储路径下的各个文件的方式获取。
其中,在本实施例中,待上传的程序文件虽对应于安卓库项目,但待上传的程序文件主要包括Jar包,该Jar包可通过与安卓库项目相对应的Aar包获取,从而实现灵活上传各类文件包的目的。另外,在本实施例中,待上传的程序文件进一步包括:Javadoc文件、以及Pom文件。
步骤S240:根据Jar包以及Aar包修改Pom文件中包含的项目依赖关系,和/或,删除Pom文件中包含的私有依赖库。
具体地,在本实施例的一个具体应用场景中,需要将开发完成的SDK等项目文件上传至JCenter仓库,以便于实现项目文件的共享。根据JCenter仓库的相关规范,凡是上传至该仓库的项目文件必需包含以下四个必须的程序文件:xxx-javadoc.jar(即Javadoc文件)、xxx-sources.jar(即上文提到的Jar包文件)、xxx.pom(即Pom文件)、xxx.aar。为了正常通过审核,上述四个程序文件缺一不可。
发明人在实现本发明的过程中发现,Pom文件,也叫Pom配置文件,该文件中存储有项目文件之间的各种依赖关系。由于该Pom配置文件原本对应于安卓库项目,而安卓库项目默认的程序文件为Aar包文件,该Aar包中除包含本发明中需要上传至代码仓库的Jar包文件外,还包含本发明中不需要上传至代码仓库的资源类文件。并且,Aar包还可能依赖一些其他的第三方类库。相应地,该Pom配置文件中至少还存储有与Aar包中包含的无需上传至代码仓库的资源类文件相关的依赖关系,以及与第三方类库之间的依赖关系。因此,若直接上传未经修改的Pom文件,则会导致上传后的文件无法通过JCenter仓库的审核。所以,在本实施例中,需要在执行文件归档上传操作之前,对Pom配置文件进行修改,以删除其中无效的依赖关系。
具体地,可以执行以下两方面的操作:一方面,根据Jar包以及Aar包修改Pom文件中包含的项目依赖关系,以便删除无效的依赖关系。另一方面,删除Pom文件中包含的私有依赖库。该步骤由自定义插件自动实现,大幅降低了开发人员的人力成本。具体修改时,需注意以下问题:Pom文件本身不能更改成其他的XML格式,只能一行一个节点,里面的内容紧接着节点才可以,否则上传不成功。
步骤S250:将获取到的待上传的程序文件上传至代码仓库。
在获取到待上传的程序文件后,通过调用代码仓库提供的文件上传类访问接口即可将获取到的程序文件上传至代码仓库。
另外,可选地,在将获取到的待上传的程序文件上传至代码仓库之前,还可以进一步执行以下操作:将获取到的待上传的程序文件备份到预设的备份目录下,以便在项目运行过程中根据备份结果分析项目异常原因。具体地,预先备份所有需要备份的文件到指定目录下,并删除已备份过的文件,防止过度冗余。通过备份能够留存一份映射文件,从而在项目出现问题时根据映射文件进行反混淆,以便快速解决问题。具体的备份时机可由本领域技术人员灵活设置。
由此可见,在本实施例中,在生成待上传的程序文件之后,在文件上传之前,先将待上传的程序文件存放至指定的存储路径下,再把可配置上传参数的参数值设置为与该存储路径相对应的设置,以便将上传路径指定为程序文件所在的存储路径。由于程序文件所在的存储路径可由本领域技术人员灵活配置,因此,通过该方式能够上传任意格式、任意内容的文件,实现了灵活上传各种文件的目的,不受项目类型的制约。
另外,在本实施例中,用于实现上述步骤的自定义插件可通过Gradle脚本实现。在该Gradle脚本中包含用于生成Pom文件的任务,由于生成Pom文件的任务是动态生成的任务,若在Gradle脚本里直接进行依赖则会提示该任务不存在,为了解决这一问题,需要在整个配置阶段执行完之后,动态地增加用于生成Pom文件的任务的依赖关系。
另外,本发明中用于上传至代码仓库的各个程序文件可通过各种方式预先生成,本发明对程序文件的具体生成方式不做限定。例如,可以根据用于生成程序文件的源文件代码生成。为了实现上述四个程序文件的快速生成及上传操作,JCenter仓库本身提供了官方的上传插件,即与JCenter仓库相对应的上传插件(即JCenter上传插件)。该上传插件中包含四个插件生成任务,分别用于生成对应的程序文件。例如,包括:用于生成Javadoc文件的Javadoc插件生成任务(即JavadocTask)、用于生成Jar文件的Jar文件插件生成任务(即SourcesTask)、用于生成Pom文件的Pom插件生成任务(即PomTask)、用于生成aar文件的aar插件生成任务(即AarTask)。上述四个插件生成任务分别在各自对应的生成目录下生成对应的程序文件,并借助上传插件中提供的与文件上传操作相关的代码实现针对四个程序文件的统一归档上传。
但是,在使用与JCenter仓库相对应的上传插件实现上述操作的过程中,经常由于源文件代码中包含一些非常规性代码而导致某个程序文件的生成及上传过程出错。例如,在本实施例中,Javadoc文件无法通过该上传插件成功生成。为了解决上述问题,提出了如下的程序文件的生成方法,具体包括以下步骤:
步骤一:分析用于生成程序文件的源文件代码,查找该源文件代码中包含的符合预设冲突规则的冲突语句。
其中,用于生成程序文件的源文件代码的具体类型取决于待生成的程序文件的具体类型,本发明对用于生成程序文件的源文件代码的具体内涵不做限定。正常情况下,直接通过与代码仓库相对应的上传插件即可自动生成与该源文件代码相对应的程序文件。但是,当源文件代码中包含一些非常规的代码段时,则会导致程序文件生成失败。
为此,在本实施例中,预先设置有冲突规则,该冲突规则用于检测对程序文件的生成环节存在影响的非常规代码段。本发明不限定该冲突规则的具体内涵,凡是能够影响到程序文件的生成过程的代码段所对应的规则均可包含在该冲突规则之内。例如,假设源文件代码中包含的与第三方类库之间存在引用关系的语句会对程序文件的生成过程产生影响,则该冲突规则包括:用于识别源文件代码中包含的与第三方类库之间存在引用关系的语句的规则。总之,预设冲突规则可由本领域技术人员根据源文件代码对应的项目类型、与第三方类库之间的引用关系等多种因素确定。相应地,在本步骤中,将该源文件代码中包含的符合预设冲突规则的语句确定为冲突语句。
步骤二:将查找到的冲突语句从该源文件代码中删除,根据删除后的源文件代码生成位于预设路径下的程序文件。
具体地,将查找到的冲突语句从该源文件代码中删除时,既可以直接将冲突语句从源文件代码中删除,也可以将冲突语句修改为注释形式。总之,本发明不限定删除的具体实现方式,只要使删除后的源文件代码在运行过程中不会执行上述的冲突语句即可。相应地,根据删除后的源文件代码生成程序文件时,由于不执行冲突语句,因此能够顺利生成程序文件。另外,为了便于实现后续的上传操作,在本实施例中,将生成的程序文件存放在预设路径下,该预设路径可由本领域技术人员灵活设置。
具体地,发明人在实现本发明的过程中发现:有些项目文件为了能够兼容一些创建较早、或版本老旧的项目,会在源文件代码中包含一些当前版本的程序已经无法运行的语句(这些语句在更低版本的程序中能够运行)。为了实现兼容性,通常将这些仅能在特定的低版本项目中运行的语句通过空壳形式实现。相应地,在开发SDK的过程中,采用useLibrary'org.apache.http.legacy'的方式使用网络库(如Apache网络库)。然而,由于JCenter上传插件本身不支持空壳形式,因而导致后续的Javadoc文件无法通过JCenter上传插件生成。为了解决上述问题,在步骤一中,分析用于生成程序文件的源文件代码,以查找源文件代码中包含的与空壳形式相关的空壳语句,将空壳语句确定为符合预设冲突规则的冲突语句。其中,空壳语句主要是指:在编译期使用、但未在运行期使用且未包含在项目最终文件中的类库或代码中的语句。例如,考虑到兼容老项目等需求,有一部分项目类库仅在编译期使用,以保证编译过程不会报错。但是,该部分项目类库在运行期时则不再使用,而是被替换为系统类库,因而项目最终打包后的打包文件中也不包含该部分项目类库中的内容,相应地,该部分项目类库中的语句内容即为空壳语句。由此可见,在编译期使用,在运行期被替换为系统类库的方式称之为空壳替换,凡是与空壳替换相关的语句均属于与空壳形式相关的空壳语句。更广义地说,本发明中的空壳语句泛指各类由于各种原因导致的在项目编译过程中使用、但在项目运行过程和/或打包过程中未使用的语句。具体地,可以预先收集与空壳形式相关的空壳语句的语句特征信息,例如,收集与空壳形式相关的空壳语句的语句中包含的语句类型信息、语句名称信息等语句特征信息,相应地,将源文件代码与空壳语句的语句特征信息进行匹配,一旦匹配成功,则确定相应的语句为空壳语句,进而将其确定为冲突语句。由此可见,本实施例中的冲突语句主要是指与useLibrary相对应的空壳的形式的语句。
通过上述方式,能够在无法通过JCenter仓库所对应的上传插件自动生成程序文件时,通过剔除源文件代码中的冲突语句的方式生成程序文件。另外,还需要强调的是,上述的文件生成方式无需改变源文件代码的实现方式,依然能够采用useLibrary'org.apache.http.legacy'的空壳方式使用网络库,无需使SDK更换其他的方式引用该网络库,从而为项目开发提供了便利。若是SDK更换其他的方式引用该网络库(采用非空壳的方式),则会导致SDK中包含其他的非必须文件,进而导致SDK的体积增大,从而为项目带来不必要的影响。因此,该方式能够在不改变项目实现方式且不改变项目文件包的大小的前提下实现程序文件的生成及上传操作,具有很强的普适性,能够广泛适用于各种应用场景,凡是由于上传插件与源文件代码相冲突所导致的生成失败情况均可采用本发明中的方案。
图3示出了本发明又一实施例提供的一种将程序文件上传至代码仓库的装置的装置结构图。如图3所示,本装置包括:
获取模块31,适于获取待上传的程序文件的文件属性信息;
确定模块32,适于根据所述待上传的程序文件的文件属性信息确定所述待上传的程序文件的存储路径;
上传模块33,适于根据所述待上传的程序文件的存储路径获取所述待上传的程序文件,将获取到的所述待上传的程序文件上传至代码仓库。
可选地,所述代码仓库为JCenter仓库,所述装置由自定义插件实现,且所述自定义插件与第三方插件解耦;其中,所述第三方插件包括:与JCenter仓库所对应的用于实现文件上传功能的开源插件之间存在耦合关系的插件。
可选地,所述获取模块31具体适于:
通过预设的可配置上传参数接收用户配置的待上传的程序文件的文件属性信息,以便通过读取所述预设的可配置上传参数的参数值来获取所述待上传的程序文件的文件属性信息。
可选地,所述程序文件的文件属性信息包括以下中的至少一个:文件存储路径信息、文件名称信息、文件格式信息以及文件类型信息。
可选地,当所述待上传的程序文件对应于安卓库项目时,所述待上传的程序文件包括Jar包,且所述Jar包通过与所述安卓库项目相对应的Aar包获取。
可选地,所述待上传的程序文件进一步包括:Javadoc文件、以及Pom文件,则所述上传模块进一步用于:
根据所述Jar包以及所述Aar包修改所述Pom文件中包含的项目依赖关系,和/或,删除所述Pom文件中包含的私有依赖库。
可选地,所述上传模块33进一步用于:将获取到的所述待上传的程序文件备份到预设的备份目录下,以便在项目运行过程中根据备份结果分析项目异常原因。
上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
本申请实施例提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的将程序文件上传至代码仓库的方法。
图4示出了根据本发明实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述将程序文件上传至代码仓库的方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行上述方法实施例中的各项操作。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的将程序文件上传至代码仓库的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了A1.一种将程序文件上传至代码仓库的方法,包括:
获取待上传的程序文件的文件属性信息;
根据所述待上传的程序文件的文件属性信息确定所述待上传的程序文件的存储路径;
根据所述待上传的程序文件的存储路径获取所述待上传的程序文件,将获取到的所述待上传的程序文件上传至代码仓库。
A2.根据A1所述的方法,其中,所述代码仓库为JCenter仓库,所述方法由自定义插件实现,且所述自定义插件与第三方插件解耦;其中,所述第三方插件包括:与JCenter仓库所对应的用于实现文件上传功能的开源插件之间存在耦合关系的插件。
A3.根据A1或2所述的方法,其中,所述获取待上传的程序文件的文件属性信息包括:
通过预设的可配置上传参数接收用户配置的待上传的程序文件的文件属性信息,以便通过读取所述预设的可配置上传参数的参数值来获取所述待上传的程序文件的文件属性信息。
A4.根据A3所述的方法,其中,所述程序文件的文件属性信息包括以下中的至少一个:文件存储路径信息、文件名称信息、文件格式信息以及文件类型信息。
A5.根据A1-4任一所述的方法,其中,当所述待上传的程序文件对应于安卓库项目时,所述待上传的程序文件包括Jar包,且所述Jar包通过与所述安卓库项目相对应的Aar包获取。
A6.根据A5所述的方法,其中,所述待上传的程序文件进一步包括:Javadoc文件、以及Pom文件,则所述将获取到的所述待上传的程序文件上传至代码仓库之前,进一步包括以下步骤:
根据所述Jar包以及所述Aar包修改所述Pom文件中包含的项目依赖关系,和/或,删除所述Pom文件中包含的私有依赖库。
A7.根据A1-6任一所述的方法,其中,所述将获取到的所述待上传的程序文件上传至代码仓库之前,进一步包括:
将获取到的所述待上传的程序文件备份到预设的备份目录下,以便在项目运行过程中根据备份结果分析项目异常原因。
本发明还公开了B8.一种将程序文件上传至代码仓库的装置,包括:
获取模块,适于获取待上传的程序文件的文件属性信息;
确定模块,适于根据所述待上传的程序文件的文件属性信息确定所述待上传的程序文件的存储路径;
上传模块,适于根据所述待上传的程序文件的存储路径获取所述待上传的程序文件,将获取到的所述待上传的程序文件上传至代码仓库。
B9.根据B8所述的装置,其中,所述代码仓库为JCenter仓库,所述装置由自定义插件实现,且所述自定义插件与第三方插件解耦;其中,所述第三方插件包括:与JCenter仓库所对应的用于实现文件上传功能的开源插件之间存在耦合关系的插件。
B10.根据B8或9所述的装置,其中,所述获取模块具体适于:
通过预设的可配置上传参数接收用户配置的待上传的程序文件的文件属性信息,以便通过读取所述预设的可配置上传参数的参数值来获取所述待上传的程序文件的文件属性信息。
B11.根据B10所述的装置,其中,所述程序文件的文件属性信息包括以下中的至少一个:文件存储路径信息、文件名称信息、文件格式信息以及文件类型信息。
B12.根据B8-11任一所述的装置,其中,当所述待上传的程序文件对应于安卓库项目时,所述待上传的程序文件包括Jar包,且所述Jar包通过与所述安卓库项目相对应的Aar包获取。
B13.根据B12所述的装置,其中,所述待上传的程序文件进一步包括:Javadoc文件、以及Pom文件,则所述上传模块进一步用于:
根据所述Jar包以及所述Aar包修改所述Pom文件中包含的项目依赖关系,和/或,删除所述Pom文件中包含的私有依赖库。
B14.根据B8-13任一所述的装置,其中,所述上传模块进一步用于:将获取到的所述待上传的程序文件备份到预设的备份目录下,以便在项目运行过程中根据备份结果分析项目异常原因。
本发明还公开了C15.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-7中任一项所述的将程序文件上传至代码仓库的方法对应的操作。
D16.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-7中任一项所述的将程序文件上传至代码仓库的方法对应的操作。

Claims (10)

1.一种将程序文件上传至代码仓库的方法,包括:
获取待上传的程序文件的文件属性信息;
根据所述待上传的程序文件的文件属性信息确定所述待上传的程序文件的存储路径;
根据所述待上传的程序文件的存储路径获取所述待上传的程序文件,将获取到的所述待上传的程序文件上传至代码仓库。
2.根据权利要求1所述的方法,其中,所述代码仓库为JCenter仓库,所述方法由自定义插件实现,且所述自定义插件与第三方插件解耦;其中,所述第三方插件包括:与JCenter仓库所对应的用于实现文件上传功能的开源插件之间存在耦合关系的插件。
3.根据权利要求1或2所述的方法,其中,所述获取待上传的程序文件的文件属性信息包括:
通过预设的可配置上传参数接收用户配置的待上传的程序文件的文件属性信息,以便通过读取所述预设的可配置上传参数的参数值来获取所述待上传的程序文件的文件属性信息。
4.根据权利要求3所述的方法,其中,所述程序文件的文件属性信息包括以下中的至少一个:文件存储路径信息、文件名称信息、文件格式信息以及文件类型信息。
5.根据权利要求1-4任一所述的方法,其中,当所述待上传的程序文件对应于安卓库项目时,所述待上传的程序文件包括Jar包,且所述Jar包通过与所述安卓库项目相对应的Aar包获取。
6.根据权利要求5所述的方法,其中,所述待上传的程序文件进一步包括:Javadoc文件、以及Pom文件,则所述将获取到的所述待上传的程序文件上传至代码仓库之前,进一步包括以下步骤:
根据所述Jar包以及所述Aar包修改所述Pom文件中包含的项目依赖关系,和/或,删除所述Pom文件中包含的私有依赖库。
7.根据权利要求1-6任一所述的方法,其中,所述将获取到的所述待上传的程序文件上传至代码仓库之前,进一步包括:
将获取到的所述待上传的程序文件备份到预设的备份目录下,以便在项目运行过程中根据备份结果分析项目异常原因。
8.一种将程序文件上传至代码仓库的装置,包括:
获取模块,适于获取待上传的程序文件的文件属性信息;
确定模块,适于根据所述待上传的程序文件的文件属性信息确定所述待上传的程序文件的存储路径;
上传模块,适于根据所述待上传的程序文件的存储路径获取所述待上传的程序文件,将获取到的所述待上传的程序文件上传至代码仓库。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的将程序文件上传至代码仓库的方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的将程序文件上传至代码仓库的方法对应的操作。
CN201811481916.8A 2018-12-05 2018-12-05 将程序文件上传至代码仓库的方法及装置 Active CN111273940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811481916.8A CN111273940B (zh) 2018-12-05 2018-12-05 将程序文件上传至代码仓库的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811481916.8A CN111273940B (zh) 2018-12-05 2018-12-05 将程序文件上传至代码仓库的方法及装置

Publications (2)

Publication Number Publication Date
CN111273940A true CN111273940A (zh) 2020-06-12
CN111273940B CN111273940B (zh) 2024-04-05

Family

ID=70996701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811481916.8A Active CN111273940B (zh) 2018-12-05 2018-12-05 将程序文件上传至代码仓库的方法及装置

Country Status (1)

Country Link
CN (1) CN111273940B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114390044A (zh) * 2021-12-29 2022-04-22 杭州华橙软件技术有限公司 一种文件上传方法、系统、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033774A1 (en) * 2003-08-05 2005-02-10 James Brentano System and method for bulk transfer of digital goods
US20070156756A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Web services deployment
CN106528258A (zh) * 2016-10-28 2017-03-22 武汉斗鱼网络科技有限公司 提高安卓项目编译速度的方法及系统
CN106775760A (zh) * 2017-01-04 2017-05-31 郑州云海信息技术有限公司 基于源码库上传容器镜像至镜像仓库的方法及系统
CN107193615A (zh) * 2017-06-29 2017-09-22 北京全域医疗技术有限公司 项目代码信息的更新部署方法及装置
CN107357733A (zh) * 2017-07-17 2017-11-17 万帮充电设备有限公司 提高代码质量的方法及装置
CN107704260A (zh) * 2017-10-31 2018-02-16 广东小天才科技有限公司 一种更新应用软件的软件开发工具包的方法及系统
CN107908403A (zh) * 2017-11-10 2018-04-13 北京搜狐新动力信息技术有限公司 一种移动端业务模块组件化的配置方法及系统
CN108415825A (zh) * 2017-10-27 2018-08-17 平安科技(深圳)有限公司 电子装置、测试方法及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033774A1 (en) * 2003-08-05 2005-02-10 James Brentano System and method for bulk transfer of digital goods
US20070156756A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Web services deployment
CN106528258A (zh) * 2016-10-28 2017-03-22 武汉斗鱼网络科技有限公司 提高安卓项目编译速度的方法及系统
CN106775760A (zh) * 2017-01-04 2017-05-31 郑州云海信息技术有限公司 基于源码库上传容器镜像至镜像仓库的方法及系统
CN107193615A (zh) * 2017-06-29 2017-09-22 北京全域医疗技术有限公司 项目代码信息的更新部署方法及装置
CN107357733A (zh) * 2017-07-17 2017-11-17 万帮充电设备有限公司 提高代码质量的方法及装置
CN108415825A (zh) * 2017-10-27 2018-08-17 平安科技(深圳)有限公司 电子装置、测试方法及存储介质
CN107704260A (zh) * 2017-10-31 2018-02-16 广东小天才科技有限公司 一种更新应用软件的软件开发工具包的方法及系统
CN107908403A (zh) * 2017-11-10 2018-04-13 北京搜狐新动力信息技术有限公司 一种移动端业务模块组件化的配置方法及系统

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
ANDROID小菜比: "构建本地Jcenter、上传AAR、jar、plugin到本地Jcenter", pages 1 - 8, Retrieved from the Internet <URL:https://blog.csdn.net/u011060103/article/details/80696524> *
JAVA前线: "Maven学习六之利用mvn deploy命令上传包", pages 1, Retrieved from the Internet <URL:https://blog.csdn.net/woshixuye/article/details/8133050> *
XING LIU等: "Android single sign-on security: Issues, taxonomy and directions", FUTURE GENERATION COMPUTER SYSTEMS, vol. 89, pages 402 - 420 *
吴祥坤 等: "基于Android平台的信息采集与远程显示系统研究", 吉林大学学报(信息科学版), vol. 35, no. 02, pages 212 - 219 *
戚艳军 等: "多文件上传在Web应用中的实现方法研究", 计算机技术与发展, vol. 16, no. 04, pages 158 - 160 *
袁亚欣: "基于Hadoop交通信息并行处理云平台的设计与实现", 中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑, no. 2, pages 034 - 570 *
谢翔宇: "基于Android平台的智慧社区APP系统及数据接口的研究与实现", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 3, pages 138 - 738 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114390044A (zh) * 2021-12-29 2022-04-22 杭州华橙软件技术有限公司 一种文件上传方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN111273940B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
US8458681B1 (en) Method and system for optimizing the object code of a program
CN110968325B (zh) 一种小程序转换方法及装置
JP4878715B2 (ja) オペレーティングシステムに適合しないアプリケーションにパッチを当てる方法、コンピュータシステム及びコンピュータ可読記録媒体
US6542167B1 (en) System and method for flexible software linking
US8464228B2 (en) Binary library
US10942734B2 (en) Software dependency shading
CN108304175B (zh) 代码文件隔离打包方法及装置
US8429632B1 (en) Method and system for debugging merged functions within a program
US20040103406A1 (en) Method and apparatus for autonomic compiling of a program
US9104797B1 (en) Efficient cloud-based annotation of crash reports
US9043757B2 (en) Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files
CN111061643B (zh) Sdk集群的兼容性检测方法、装置、电子设备及存储介质
CN108762825B (zh) 动态库重载的实现方法及系统
CN114138281A (zh) 软件工程的编译方法、装置、设备及介质
CN111352631B (zh) 一种接口兼容性检测方法及装置
CN111273940B (zh) 将程序文件上传至代码仓库的方法及装置
CN113515303A (zh) 一种项目转型方法、装置和设备
US9367553B2 (en) Computer file system traversal
CN110727565B (zh) 一种网络设备平台信息收集方法及系统
CN111273944B (zh) 生成程序文件并上传至代码仓库的方法及装置
CN114398102A (zh) 一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质
CN110275710B (zh) 一种Java本地接口一致性检查方法及系统、存储介质及终端
US8769517B2 (en) Generating a common symbol table for symbols of independent applications
US11256602B2 (en) Source code file retrieval
CN117215965B (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
TA01 Transfer of patent application right

Effective date of registration: 20240308

Address after: Room 03, 2nd Floor, Building A, No. 20 Haitai Avenue, Huayuan Industrial Zone (Huanwai), Binhai New Area, Tianjin, 300450

Applicant after: 3600 Technology Group Co.,Ltd.

Country or region after: China

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant