CN114237615A - 一种基于决策树模型的打包方法及相关设备 - Google Patents
一种基于决策树模型的打包方法及相关设备 Download PDFInfo
- Publication number
- CN114237615A CN114237615A CN202111533826.0A CN202111533826A CN114237615A CN 114237615 A CN114237615 A CN 114237615A CN 202111533826 A CN202111533826 A CN 202111533826A CN 114237615 A CN114237615 A CN 114237615A
- Authority
- CN
- China
- Prior art keywords
- file
- target
- name
- packaged
- preset
- 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
- 238000012856 packing Methods 0.000 title claims abstract description 84
- 238000003066 decision tree Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004806 packaging method and process Methods 0.000 claims description 165
- 230000004044 response Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012986 modification Methods 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000012858 packaging process Methods 0.000 description 7
- 238000012549 training Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例应用于人工智能领域,公开了一种基于决策树模型的打包方法及相关设备,包括:接收携带编译目标的标识的打包指令;拷贝工程文件中的编译目标,得到待打包目标;获取工程文件的名称和工程文件中编译目标的名称,调用决策树模型根据工程文件的名称和编译目标的名称确定待打包目标的名称,并将名称作为待打包目标的文件名称;获取编译目标的第一配置文件以及第一配置文件的配置方式,根据第一配置文件以及配置方式确定待打包目标配置后的第二配置文件;根据配置后的第二配置文件对待打包目标进行编译,得到名称为参考名称的打包文件。采用本申请实施例,可以提高打包效率,适用性强。本申请涉及区块链技术,上述文件可存储于区块链中。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种基于决策树模型的打包方法及相关设备。
背景技术
随着智能终端以及信息技术的发展,基于输入输出系统(Input Output System,iOS)开发的应用程序得到了广泛的应用,为人们的日常生活提供了方便。在iOS端的应用或者功能对应的工程开发完成之后,均需要打包,即封装成软件开发工具包(SoftwareDevelopment Kit,SDK),从而可以发布该应用或功能。
目前,iOS端的工程常规打包方式大致分为两种,第一种是通过Cocoapods命令打包,所谓Cocoapods是一种为iOS系统的工程提供依赖管理的第三方依赖库的管理工具,通过Cocoapods工具可以将每个组件或者一类组件作为一个“pod”,每个“pod”会新建一个示例(Example)工程,并通过“pod package”的打包指令,以该Example工程为基础进行打包产生SDK。第二种是以framework(框架)的形式打包,所谓Framework,是一种由公共代码封装的共享库,这种打包方式在工程新建时就是Framework或者静态库(Static Library)。对于第一种方式,由于Cocoapods的原理是将所有的依赖库(引用的第三方库/函数等)都放到“pod”中,并让主工程依赖该pod工程,因此采用这种方式会因为各子模块依赖库版本和引用关系混乱而报错,并且这种方法的打包时间较长,可能会影响功能模块的提测与验证。对于第二种方式,对于源工程不是Framework或Static Library这种形式的工程无法进行打包,适应性差。
发明内容
本申请实施例提供一种基于决策树模型的打包方法及相关设备,一方面,通过对预设工程文件中拷贝参考编译目标得到的待打包目标进行配置和打包,动态创建了编译目标,避免了通过工程文件直接打包所引发的依赖关系复杂,难以处理的问题,也不限定预设工程文件的形式。另一方面,通过决策树模型确定名称,无需人为修改文件名称,能够适用于批量打包的场景,提高批量打包的效率。又一方面,根据参考编译目标的配置方式对待打包目标的配置文件进行配置并打包,通过打包脚本对待打包目标进行配置和打包,整个打包的过程中不会有额外的代码提交记录,减少打包的时间,提升打包的效率。
第一方面,本申请实施例提供了一种基于决策树模型的打包方法,包括:
接收打包指令,上述打包指令携带参考编译目标的标识;
响应于上述打包指令,拷贝预设工程文件中的上述参考编译目标,得到待打包目标,上述预设工程文件中包括至少一个编译目标;
获取上述预设工程文件的名称和上述至少一个编译目标中各个编译目标的名称,调用预设的决策树模型根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称,并将上述参考名称作为上述待打包目标的文件名称;
获取上述参考编译目标对应的第一配置文件以及上述第一配置文件对应的配置方式,根据上述第一配置文件确定上述待打包目标对应的第二配置文件,并根据上述配置方式对上述第二配置文件进行配置;
根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件。
进一步地,上述预设的决策树模型包括多个节点,上述多个节点包括根节点、中间节点和叶子节点,上述叶子节点对应不同的生成规则;上述根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称之前,上述方法还包括:
获取上述待打包目标的需求信息,并将上述需求信息转换为上述待打包目标的属性信息;
上述调用预设的决策树模型根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称,包括:
根据上述属性信息确定在上述预设的决策树模型中参考路径以及上述参考路径的参考叶子节点;
获取上述参考叶子节点对应的生成规则,根据上述生成规则提取上述预设工程文件的名称中的信息和上述各个编译目标的名称中的信息,并根据提取出的信息生成上述参考名称。
进一步地,上述根据上述第一配置文件确定上述待打包目标对应的第二配置文件,包括:
在第一文件的配置方式为修改路径的情况下,将上述第一文件确定为第二配置文件中的第二文件,并修改引用上述第二文件的对象为上述待打包目标,上述第一文件为上述第一配置文件中的文件;
在第三文件的配置方式为新增配置文件的情况下,拷贝上述第三文件,得到上述第二配置文件中的第四文件,并修改引用上述第四文件的对象为上述待打包目标,上述第三文件为上述第一配置文件中的文件;
上述修改引用上述第四文件的对象为上述待打包目标之后,上述方法还包括:
根据上述第三文件的配置属性调整上述第四文件的配置属性。
进一步地,上述拷贝上述第三文件,得到上述第二配置文件中的第四文件,包括:
在确定第一对象的类型不为预设类型的情况下,将上述第一对象的值赋给第二对象,上述第一对象为上述第三文件中的任一对象,上述第二对象为上述第四文件中的对象,得到上述第二配置文件中的上述第四文件;
在确定上述第一对象的类型为上述预设类型的情况下,将上述第二对象的类型设置为上述预设类型,并拷贝上述第一对象中的第一元素至第二对象中的第二元素,直至已拷贝上述第一对象内的各个第一元素,得到上述第二配置文件中的上述第四文件,上述第一元素为上述第一对象内的任一元素。
进一步地,上述第二配置文件包括图标文件,上述修改引用上述第四文件的对象为上述待打包目标之后,上述方法还包括:
向预设终端设备发送图片获取请求,上述获取请求携带上述预设工程文件的名称、上述参考编译目标的名称以及上述参考名称;
接收上述预设终端设备发送的第一图片,在确定上述第一图片的尺寸不为上述预设尺寸的图标文件的情况下,向上述预设终端发送上述第一图片的尺寸不为上述预设尺寸的提示信息;
接收针对上述提示信息的裁剪指令,响应于上述裁剪指令根据上述预设尺寸对上述第一图片进行裁剪;或者,
接收上述预设终端设备发送的第二图片,将上述第一图片替换为上述第二图片,并在确定上述第二图片的尺寸为上述预设尺寸的情况下,将上述第二图片确定为上述图标文件。
进一步地,上述配置后的第二配置文件还包括用于指示运行环境的配置文件,上述打包指令还携带上述待打包目标的输出地址,上述根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,包括:
根据上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置;
上述根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件之后,上述方法还包括:
将上述预设工程文件中引用上述第二文件的对象修改为上述参考编译目标,删除上述第四文件和上述待打包目标,并保存上述预设工程文件;
在上述输出地址对应的文件位置的用户界面中显示上述预设尺寸的第二图标。
进一步地,上述根据上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置,包括:
在确定上述配置后的第二配置文件中包括用于指示引用预设编译目标的文件的情况下,对上述预设编译目标进行编译,得到编译结果,上述预设编译目标为上述预设工程文件中的编译目标;
根据上述编译结果以及上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置。
第二方面,本申请实施例提供了一种基于决策树模型的打包装置,包括:
接收单元,用于接收打包指令,上述打包指令携带了参考编译目标的标识;
拷贝单元,用于响应于上述打包指令,拷贝预设工程文件中的上述参考编译目标,得到待打包目标,上述预设工程文件中包括至少一个编译目标;
获取单元,用于获取上述预设工程文件的名称和上述至少一个编译目标中各个编译目标的名称,调用预设的决策树模型根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称,并将上述参考名称作为上述待打包目标的文件名称;
上述获取单元,还用于获取上述参考编译目标对应的第一配置文件以及上述第一配置文件对应的配置方式,根据上述第一配置文件确定上述待打包目标对应的第二配置文件,并根据上述配置方式对上述第二配置文件进行配置;
编译单元,用于根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件。
另外,该方面中,该基于决策树模型的打包装置其他可选的实施方式可参阅上述第一方面的相关内容,此处不再详述。
第三方面,本申请实施例提供一种计算机设备,该计算机设备包括存储器和处理器、收发器;上述处理器分别与上述存储器和上述收发器相连,其中,上述存储器存储有计算机程序代码,上述处理器和上述收发器用于调用上述程序代码,执行上述第一方面和/或第一方面任一种可能的实现方式提供的方法。
第四方面,实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被计算机设备运行时,实现如第一方面的任一种可能的实现方式所公开的基于决策树模型的打包方法。
第五方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于决策树模型的打包方法。
本申请实施例中,通过对预设工程文件中拷贝参考编译目标得到的待打包目标进行相应的配置和编译,进而得到打包文件,实现了动态创建编译目标,并对动态创建的编译目标进行打包,避免了通过工程文件直接打包所引发的依赖关系复杂,难以处理的问题,同时也可以不限制预设工程文件的形式,适应性强。通过调用决策树模型确定待打包目标的参考名称,即编译后的打包文件的名称,可以适用于批量打包编译目标的场景,提高了批量打包的效率,也提升了打包后的文件的标识度。通过按照参考编译目标对应的配置文件以及对应的配置方式对拷贝出的待打包目标进行配置,无需在对待打包目标进行打包的过程中进行手动进行编译,即不会出现额外的代码提交记录,通过打包脚本进行打包,可以避免手工编译出现的编译错误,减少编译和打包的时间,进而提高打包的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于决策树模型的打包系统的结构示意图;
图2是本申请实施例提供的一种基于决策树模型的打包方法的流程示意图;
图3是本申请实施例提供的一种基于决策树模型的打包方法的决策树模型的示意图;
图4是本申请实施例提供的一种基于决策树模型的打包装置的结构示意图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图1-附图3对本申请实施例提供的一种基于决策树模型的打包方法进行示意性说明。
本申请实施例提供的一种基于决策树模型的打包方法可以应用于一种编译目标(target)打包平台中,该编译目标打包平台可以承载于基于决策树模型的打包系统中或者应用程序。在某些实施例中,上述编译目标打包平台是指具有对工程文件中的编译目标(target)进行编译,封装成SDK文件的功能的平台,该编译目标平台可以在接收到针对指定参考编译目标的打包指令后,根据指定的参考编译目标动态创建编译目标,进而按照该参考编译目标的配置文件和配置方式对创建的编译目标进行配置后进行打包,得到打包文件,以实现避免直接通过参考编译目标进行打包所引发的依赖关系复杂,难以处理的问题,从而无需人为手动提交代码进行编译,节省打包时间,提高打包的效率。其中,该编译目标打包平台可以接收终端设备发送的打包指令,进而根据该打包指令所指示的编译目标进行动态创建并配置和打包。在某些实施例中,编译目标打包平台可以与终端设备建立通信连接。在某些实施例中,上述通信连接的方式可以包括但不限于无线通信技术(WirelessFidelity,WIFI)、蓝牙、近场通信(Near Field Communication,NFC)等。
具体的,编译目标打包平台可以接收携带参考编译目标的标识,响应于该打包指令,编译目标打包平台拷贝预设工程文件中的参考编译目标,得到待打包目标。在得到待打包目标之后,编译目标打包平台可以调用决策树模型根据预设工程文件的名称和各个编译目标的名称确定待打包目标的参考名称,该参考名称也作为最终打包文件的名称。编译目标打包平台还可以获取参考编译目标对应的第一配置文件以及该第一配置文件对应的配置方式,确定待打包目标对应的第二配置文件,以及第二配置文件对应的配置方式。进而,编译目标打包平台根据配置方式配置后的第二配置文件对该待打包目标进行编译,得到名称为参考名称的打包文件,即打包完成。
一方面,通过编译目标打包平台对预设工程文件中拷贝参考编译目标得到的待打包目标进行配置和打包,动态创建了编译目标,避免了通过工程文件直接打包所引发的依赖关系复杂,难以处理的问题,也不限定预设工程文件的形式,适应性强。另一方面,通过决策树模型确定名称,无需人为修改打包文件名称,能够适用于批量打包的场景,提高批量打包的效率。再一方面,编译目标打包平台根据参考编译目标的配置方式对待打包目标的配置文件进行配置并打包,通过打包脚本直接对待打包目标进行配置和打包,在配置和打包的过程中不会有额外的代码提交记录,减少打包的时间,提升打包的效率。
本申请实施例提出的基于决策树模型的打包方法涉及人工智能、机器学习等技术,其中:人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。
基于上述描述,下面结合附图1对本申请实施例提供的一种基于决策树模型的打包系统进行示意性说明。
请参阅图1,图1是本申请实施例提供的一种基于决策树模型的打包系统的结构示意图,如图1所示,上述基于决策树模型的打包系统包括编译目标打包平台101、终端设备102。其中,编译目标打包平台101可以与终端设备102通过有线或无线的方式进行直接或间接的连接。可选地,该基于决策树模型的打包系统还可以包括训练设备103,该编译目标打包平台101可以与该训练设备103通过有线或无线的方式进行直接或间接的连接。需要说明的是,图1所示的设备数量和形态用于举例,并不构成对本申请实施例的限定,实际应用中该基于决策树模型的打包系统还可以包括一个以上编译目标打包平台、一个以上终端设备,或者一个以上训练设备。其中,编译目标打包平台101可以用于训练模型,即编译目标打包平台101可以与训练设备103为同一设备。本申请实施例以一个编译目标打包平台101、一个终端设备102,以及编译目标打包平台101与训练设备103为同一设备为例进行讲解。
其中,该终端设备102可以用于开发项目,即构建预设工程文件,该预设工程文件中包括至少一个编译目标,每个编译目标可分别进行打包。该编译目标打包平台101可以接收终端设备102发送的打包指令,该打包指令携带参考编译目标的标识,进而编译目标打包平台101响应该打包指令,拷贝预设工程文件中的参考编译目标,得到待打包目标。编译目标打包平台101可以获取预设工程文件的名称和预设工程文件中各个编译目标的名称,并调用预设的决策树模型根据预设工程文件的名称和各个编译目标的名称,确定该待打包目标的参考名称,并将该参考名称作为该待打包目标的文件名称。编译目标打包平台101还可以获取该参考编译目标对应的第一配置文件和该第一配置文件对应的配置方式,根据第一配置文件确定待打包目标对应的第二配置文件,并根据该配置方式对第二配置文件进行相应的配置,从而对拷贝出的待打包目标打包可以得到对参考编译目标打包的效果。最终,编译目标打包平台101根据配置后的第二配置文件对该待打包目标进行编译,得到名称为该参考名称的打包文件。
可选地,上述编译目标打包平台101可以用于开发项目,即构建预设工程文件,则该打包指令可以是由该编译目标打包平台101触发的,则该编译目标打包平台101可以触发执行拷贝预设工程文件中参考编译目标的步骤,进而得到待打包目标,并确定待打包目标的参考名称,以及对待打包目标进行相应的配置和打包。
上述编译目标打包平台101和终端设备102均可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等等;上述编译目标打包平台101还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请对此不做限定。
下面对本申请实施例提供的一种基于决策树模型的打包方法进一步进行详细描述,请参阅图2,图2是本申请实施例提供的一种基于决策树模型的打包方法的流程示意图。其中,如图2所示,该基于决策树模型的打包方法可以包括:
201、接收打包指令,所述打包指令携带参考编译目标的标识。
在本申请实施例中,基于iOS系统开发的功能或应用程序是由开发人员在工程(project)中进行开发的,在工程文件中,每一个开发的功能或者不同版本的应用程序可以分别对应一个编译目标(target)。若用户想要使用开发的应用程序或功能时,或者开发人员想要调试开发的工程时,开发人员可以对工程文件进行打包,即封装成SDK文件,进而可以进行发布,从而用户可以使用开发的应用或者功能。其中,在对工程文件进行打包时,可以对工程文件包括的多个编译目标分别进行打包,每一个编译目标可以被打包成一个打包文件,则得到一个产品(product),从而适用于不同的场景,或者得到不同的功能。
其中,所谓工程(project)文件是指一个包含了所有文件、资源以及构建一个或者多个产品(product)所需信息的一个集合文件。工程文件包含编译产品所用的所有元素,并以及这些元素之间的引用、依赖的关系。一个工程文件中可以包含一个或者多个编译目标(target)。所谓编译目标(target)是指要编译的产品,即要打包的产品,编译目标(target)包括了一些配置文件,这些配置文件用于描述如何根据工程文件中的源文件进行处理的方式,从而根据编译目标(target)的配置文件以及配置方式,可以对编译目标(target)进行打包(编译),从而得到打包文件。
在一种可能的实现方式中,编译目标打包平台可以运行打包脚本,对接收到打包指令中包括的参考编译目标的标识所指示的参考编译目标进行相应拷贝,得到待打包文件,并对该待打包文件进行配置和打包。该编译目标打包平台中的打包脚本还可以用于确定对拷贝出的待打包目标的文件名称,即最终得到名称为确定的名称的打包文件,从而完成打包。其中,触发运行该打包脚本的为该打包指令,该打包指令可以是终端设备发送给该编译目标打包平台的,也可以是编译目标打包平台自身触发的,本申请对此不做限定。
202、响应于上述打包指令,拷贝预设工程文件中的上述参考编译目标,得到待打包目标。
在一种可能的实现方式中,编译目标打包平台响应于打包指令,在预设工程文件中拷贝该标识所指示的参考编译目标,得到一个新的编译目标(target),即待打包目标。这是由于在预设工程文件中,若编译目标打包平台直接对该参考编译目标直接进行打包,该参考编译目标中携带的引用关系(依赖关系)较为复杂,在打包的过程中可能出现各种各样的报错,从而需要开发人员手动修改并再次编译,比较耗费开发人员的时间,打包的效率低,在整个开发的流程中,打包时间过久也会影响功能模块的提测和验证,甚至影响产品的落地和版本的发布。基于这种情况,本申请中编译目标打包平台可以将打包指令中参考编译目标的标识所指示的参考编译目标进行拷贝,得到待打包目标后,按照参考编译目标对应的配置文件和配置方式对拷贝出的待打包目标进行配置,进而根据配置好的文件对待打包目标进行编译,得到最终的打包文件。
具体的,所谓拷贝预设工程文件中的参考编译目标,得到待打包目标,可以是编译目标打包平台将参考编译目标进行复制得到的。可选地,该参考编译目标可以是一个编译目标,也可以是多个编译目标,该参考编译目标可以是一个预设工程文件中的编译目标,也可以是多个预设工程文件中的编译目标。可选地,对于该打包脚本来说,编译目标打包平台还可以通过操作指令“Xcodeproj::Project.open”打开预设工程文件,并对参考编译目标的标识所指示的参考编译目标进行拷贝(Duplicate),并将拷贝得到的编译目标作为待打包目标。进而,按照参考编译目标的配置文件和配置方式对待打包目标进行配置,进而,根据配置好的配置文件对待打包目标进行编译,最终能够得到打包文件。
其中,将需要打包的编译目标(即参考编译目标)复制一个,得到待打包目标,进而按照复制的参考编译目标对应的配置文件和配置文件对应的配置方式对待打包目标进行相应的配置,则可以在打包的时候仅对复制得到的待打包目标进行编译,从而能够对原编译目标(即参考编译目标)无侵入性,与预设工程文件中的文件不会相互影响,从而减少在对参考编译目标进行打包的报错的可能,提高打包成功的几率,也能够提高打包的效率。
203、获取上述预设工程文件的名称和上述至少一个编译目标中各个编译目标的名称,调用预设的决策树模型根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称。
在一种可能的实现方式中,预设工程文件中可以包括至少一个编译目标,至少一个编译目标中各个编译目标包括一个唯一标识的名称,进而,编译目标打包平台可以调用决策树模型根据获取到的预设工程文件的名称和各个编译目标的名称确定待打包目标的参考名称。其中,若打包指令中的参考编译目标为多个编译目标,则编译目标打包平台在接收到打包指令的情况下,随意生成或确定待打包目标的名称,在打包后开发人员也无法轻易的辨识各个打包文件。因此,可以调用决策树模型来确定待打包目标的参考名称。
具体的,该预设的决策树模型包括多个节点,多个节点中包括根节点、中间节点以及叶子节点,每个叶子节点分别对应不同的生成规则,编译目标打包平台还可以获取该待打包目标的需求信息,并将获取到的需求信息转换为该待打包目标的属性信息,进而将该属性信息输入至决策树模型中,根据属性信息确定在决策树模型中的参考路径以及该参考路径中的叶子节点,得到参考叶子节点。进而,根据参考叶子节点所对应的生成规则从预设工程文件的名称和各个编译目标的名称中提取信息,并根据提取出的信息生成参考名称,并将参考名称作为该待打包目标的名称。
示例性的,上述该待打包目标的需求信息可以包括需求信息可以包括获取到输入的关于该待打包目标的用途信息,例如,该待打包目标为测试包或者正式包、默认的证书设置项(例如可以是Debug或Release)、企业内部的部门类别、开发的功能类别、是否有落地指标、距离落地时间的期限在预设时间段内还是在预设时间段外等等。
请一并参阅图3,图3是本申请实施例提供的一种基于决策树模型的打包方法的决策树模型的示意图,如图3所示,在决策树模型中,最上层的节点为根节点,根节点为一个节点,最下层的为叶子节点。在决策树模型中除根节点和叶子节点以外的节点为中间节点。在图3所示的决策树模型中的每个叶子节点可以分别对应一个生成规则,该生成规则可以是参考名称的生成模板,即通过生成规则所指示提取预设工程文件的名称和各个编译目标的名称中的信息,用提取的信息填充在上述生成模板中,得到参考名称。
可选地,该决策树模型可以是由历史待打包目标的参考名称和该待打包目标所拷贝的参考编译目标的名称,该参考编译目标所在预设工程文件的名称,以及待打包目标的用途信息构建的,所谓决策树模型的构建也可以称为决策树模型的训练过程,即确定决策树模型中各个节点所对应的参数的过程。
进一步地,将待打包目标属性信息输入至预设的决策树模型中,可以得到决策树模型的分类结果,该分类结果是通过从决策树根节点至某一个叶子节点(即参考叶子节点)的路径进行一层层运算得到的,则可以根据参考叶子节点所对应的生成规则确定该待打包目标的参考名称。可选地,该决策树模型中各个叶子节点的生成规则可以为开发人员设置的,可以根据不同的使用场景和使用需求进行更改。
204、获取上述参考编译目标对应的第一配置文件以及上述第一配置文件对应的配置方式,根据上述第一配置文件确定上述待打包目标对应的第二配置文件,并根据上述配置方式对上述第二配置文件进行配置。
其中,由于待打包目标拷贝的参考编译目标,为了达到与打包参考编译目标相同的技术效果,在对待打包目标进行打包时,需要按照参考编译目标对应的第一配置文件以及该第一配置文件对应的配置方式对该待打包目标进行配置,即确定该待打包目标的第二配置文件,并根据配置方式对第二配置文件进行配置。
在一种可能的实现方式中,在第一文件对应的配置方式为修改路径的情况下,将第一文件确定为第二配置文件中的第二文件,并修改引用第二文件的对象为待打包目标,其中,上述第一文件为第一配置文件中的文件。具体的,第一配置文件可以是源编译目标(即参考编译目标)的原始(source)文件和资源(resource)文件,第一配置文件中的第一文件对应的配置方式为修改路径,则可以不额外复制第一文件,将第一文件确定为第二配置文件中的第二文件,并修改引用该第二文件(即第一文件)的路径,即将引用该第二文件的对象修改为待打包目标,则对第一文件的配置完成。
在另一种可能的实现方式中,在第三文件的配置方式为新增配置文件的情况下,将该第三文件拷贝至第二配置文件中,得到第四文件,也修改引用该第四文件的对象为该待打包目标,其中,该第三文件为第一配置文件中的文件。具体的,复制该第一配置文件中的第三文件,得到第四文件,并确定由该待打包目标引用该第四文件,以编译后续该待打包目标进行编译的时候使用。例如,可以拷贝该源编译目标(即参考编译目标)的资源文件中的部分文件,如部分的source和resource文件,并将这部分文件引用到该待打包目标下,从而该待打包目标才能根据引用的资源文件进行打包。
可选地,在修改引用所述第四文件的对象为所述待打包目标之后,编译目标打包平台还可以根据第三文件的配置属性调整第四文件的配置属性。示例性的,第三文件为参考编译目标的公开的头文件,则第四文件也为该待打包目标中公开的头文件,第四文件为该待打包目标所引用的文件,则可以根据第三文件的属性配置第四文件的属性,例如,第三文件的“ATTRIBUTES”属性为公开“Public”,则编译目标打包平台将第四文件的“ATTRIBUTES”属性设置为“Public”。
其中,编译目标打包平台在对第三文件进行拷贝的过程中,并非直接对第三文件进行拷贝,而是采用递归拷贝的方式。示例性的,对于普通拷贝来说,拷贝对象A,得到对象B,若A为一个具体的值,则可以将A的值赋给B,则完成拷贝。若对象A中还包括元素a和元素b,若直接拷贝对象A,得到对象B,在B中也包括元素a和元素b。若对A中的元素a和元素b的值进行修改,则B中的元素a和元素b的值也会发生相应的修改。因此,为了将拷贝得到的对象B中的元素不受原对象A的影响,可以采用递归拷贝的方法。
具体的,首先确定对象A的类型是否为预设类型,例如确定对象A的类型是否为数组等类型,若确定A的类型不为预设类型,则可以直接进行拷贝,即调用复制函数拷贝对象A,得到对象B,或者将A的值赋给B,从而完成拷贝。若确定对象A为的类型为预设类型,例如数组类型,则对象A中包括至少一个元素,则可以分别拷贝对象A中的每一个元素,在对象B中的对应位置,直至将对象A中的各个元素均拷贝完成,从而得到拷贝后的对象B。此时,对象A包括元素a和元素b,对象B包括元素c和元素d,则对元素a和元素b的值进行修改,不会影响元素c和元素d的值。
在一种可能的实现方式中,在第一对象的类型不为预设类型的情况下,编译目标打包平台可以直接进行拷贝,即可以直接将第一对象的值赋给初始的第二对象,其中,第一对象为第三文件中的任一对象,第二对象为第四文件中的对象,从而得到第二配置文件中的第四文件。在第一对象的类型为预设类型的情况下,将初始的第二对象的类型设置为预设类型,并拷贝第一对象中的第一元素至第二对象中的第二元素,直至已拷贝第一对象内的各个第一元素,从而得到第二配置文件中的第四文件,其中,第一元素为第一对象内的任一元素。其中,编译目标打包平台可以调用拷贝函数或者拷贝指令对第三文件进行递归拷贝,本申请对此不做限定。由此,编译目标打包平台通过递归拷贝的方式复制该第三文件中的各个元素,得到第四文件,从而对待打包目标的第二配置文件进行配置。
在一种可能的实现方式中,该待打包目标的第二配置文件可以包括图标文件,该图标文件可以是打包文件的图标,可以是应用程序的图标。该图标文件包括预设尺寸,则该编译目标打包平台可以向预设终端设备发送图片获取请求,获取请求携带预设工程文件的名称、参考编译目标的名称以及参考名称。进而终端设备可以针对该预设工程文件的名称、参考编译目标的名称以及参考名称确定第一图片,并向该编译目标打包平台发送该第一图片。
进一步地,该编译目标打包平台接收预设终端设备发送的第一图片后,可以确定该第一图片的尺寸是否为预设尺寸,在确定第一图片的尺寸不为预设尺寸的图标文件的情况下,向预设终端发送第一图片的尺寸不为预设尺寸的提示信息。进而,该编译目标打包平台可以接收针对提示信息的裁剪指令,响应于裁剪指令根据预设尺寸对第一图片进行裁剪;或者,接收预设终端设备发送的第二图片,将第一图片替换为第二图片,并在确定第二图片的尺寸为预设尺寸的情况下,将第二图片确定为图标文件。
可选地,在对第二配置文件配置完成后,可以保存对预设工程文件的修改,具体的,可以通过操作指令“project.save”保存对预设工程文件的修改。
205、根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件。
在一种可能的实现方式中,配置后的第二配置文件还包括用于指示运行环境的配置文件,打包指令还携带待打包目标的输出地址,编译目标打包平台可以根据运行环境对应的打包方式对待打包目标进行编译,得到名称为参考名称的打包文件,并将打包文件存储在输出地址对应的文件位置。进一步地,编译目标打包平台根据配置后的第二配置文件对待打包目标进行编译,得到名称为参考名称的打包文件之后,编译目标打包平台还可以将预设工程文件中引用第二文件的对象修改为参考编译目标,删除第四文件和待打包目标,并保存预设工程文件,并在输出地址对应的文件位置的用户界面中显示预设尺寸的第二图标。
其中,所谓运行环境(scheme),其可以定义了可以用于编译若干编译目标以及编译这些编译目标时的一些配置和需要执行的测试。每次编译某个编译目标时,只能使用一个运行环境。该运行环境(scheme)也指示了编译目标的编译方式,运行环境可以针对某一个iOS系统所运行的设备。该输出指令携带的输出地址用于指示打包后得到的打包文件存储的位置。即编译目标打包平台可以对该待打包目标进行编译,得到名称为参考名称的打包文件,并将打包文件保存在输出地址所指示的文件位置处。编译目标打包平台可以在打包时动态生成编译目标,并配置相关的文件与资源引用的关系,不会影响该工程中的其他编译目标,并且,对待打包目标进行打包,不限定该待打包目标是否为pod工程的文件,也不限定源工程(即预设工程文件)是否为Framework或Static Library的形式,提高了适用性。
进一步地,编译目标的打包平台可以删除该待打包目标、删除第二配置文件中的第四文件,并将第二配置文件中引用第二文件的对象改为参考编译目标,并进行保存。即该编译目标的打包平台可以还原预设工程文件。
在一种可能的实现方式中,若编译目标打包平台在确定所述配置后的第二配置文件中包括用于指示引用预设工程文件中的预设编译目标的文件的情况下,先对预设编译目标进行编译,得到编译结果,其中,预设编译目标为预设工程文件中的某一个或多个编译目标。进而,编译目标打包平台根据编译结果以及运行环境对应的打包方式对待打包目标进行编译,得到名称为参考名称的打包文件,并将打包文件存储在输出地址对应的文件位置。
其中,在预设工程文件中,一个编译目标可以与其他编译目标相互联系,若该编译目标的配置文件中需要另一个编译目标的输出,则可以被称为该编译目标依赖另一个编译目标,在编译时需先编译另一个编译目标(即预设编译目标),再编译该编译目标(即待打包目标)。因此,先对预设编译目标进行编译,得到编译结果,进而可以根据编译结果对待打包目标进行编译,其中,对该待打包目标(target)进行编译会用到编译结果,从而得到打包文件,从而完成打包。可选地,该编译目标打包平台可以通过命令“xcodebuild build”对待打包目标进行打包,输出最终的打包文件。
本申请实施例中,通过对预设工程文件中拷贝参考编译目标得到的待打包目标进行相应的配置和编译,进而得到打包文件,实现了动态创建编译目标,并对动态创建的编译目标进行打包,避免了通过工程文件直接打包所引发的依赖关系复杂,难以处理的问题,同时也可以不限制预设工程文件的形式,适应性强。通过调用决策树模型确定待打包目标的参考名称,即编译后的打包文件的名称,可以适用于批量打包编译目标的场景,提高了批量打包的效率,也提升了打包后的文件的标识度。通过按照参考编译目标对应的配置文件以及对应的配置方式对拷贝出的待打包目标进行配置,无需在对待打包目标进行打包的过程中进行手动进行编译,即不会出现额外的代码提交记录,通过打包脚本进行打包,可以避免手工编译出现的编译错误,减少编译和打包的时间,进而提高打包的效率。
请参阅图4,图4是本申请实施例提供的一种基于决策树模型的打包装置的结构示意图,上述基于决策树模型的打包装置400包括:
接收单元401,用于接收打包指令,上述打包指令携带了参考编译目标的标识;
拷贝单元402,用于响应于上述打包指令,拷贝预设工程文件中的上述参考编译目标,得到待打包目标,上述预设工程文件中包括至少一个编译目标;
获取单元403,用于获取上述预设工程文件的名称和上述至少一个编译目标中各个编译目标的名称,调用预设的决策树模型根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称,并将上述参考名称作为上述待打包目标的文件名称;
上述获取单元403,还用于获取上述参考编译目标对应的第一配置文件以及上述第一配置文件对应的配置方式,根据上述第一配置文件确定上述待打包目标对应的第二配置文件,并根据上述配置方式对上述第二配置文件进行配置;
编译单元404,用于根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件。
进一步地,上述预设的决策树模型包括多个节点,上述多个节点包括根节点、中间节点和叶子节点,上述叶子节点对应不同的生成规则;
上述获取单元403,还用于获取上述待打包目标的需求信息,并将上述需求信息转换为上述待打包目标的属性信息;
上述获取单元403调用预设的决策树模型根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称,具体用于:
根据上述属性信息确定在上述预设的决策树模型中参考路径以及上述参考路径的参考叶子节点;
获取上述参考叶子节点对应的生成规则,根据上述生成规则提取上述预设工程文件的名称中的信息和上述各个编译目标的名称中的信息,并根据提取出的信息生成上述参考名称。
进一步地,上述获取单元403根据上述第一配置文件确定上述待打包目标对应的第二配置文件,具体用于:
在第一文件的配置方式为修改路径的情况下,将上述第一文件确定为第二配置文件中的第二文件,并修改引用上述第二文件的对象为上述待打包目标,上述第一文件为上述第一配置文件中的文件;
在第三文件的配置方式为新增配置文件的情况下,拷贝上述第三文件,得到上述第二配置文件中的第四文件,并修改引用上述第四文件的对象为上述待打包目标,上述第三文件为上述第一配置文件中的文件;
上述基于决策树模型的打包装置400还包括:
调整单元405,用于根据上述第三文件的配置属性调整上述第四文件的配置属性。
进一步地,上述获取单元403拷贝上述第三文件,得到上述第二配置文件中的第四文件,具体用于:
在确定第一对象的类型不为预设类型的情况下,将上述第一对象的值赋给第二对象,上述第一对象为上述第三文件中的任一对象,上述第二对象为上述第四文件中的对象,得到上述第二配置文件中的上述第四文件;
在确定上述第一对象的类型为上述预设类型的情况下,将上述第二对象的类型设置为上述预设类型,并拷贝上述第一对象中的第一元素至第二对象中的第二元素,直至已拷贝上述第一对象内的各个第一元素,得到上述第二配置文件中的上述第四文件,上述第一元素为上述第一对象内的任一元素。
进一步地,上述第二配置文件包括图标文件,上述基于决策树模型的打包装置400还包括:
发送单元406,用于向预设终端设备发送图片获取请求,上述获取请求携带上述预设工程文件的名称、上述参考编译目标的名称以及上述参考名称;
上述接收单元401,还用于接收上述预设终端设备发送的第一图片,在确定上述第一图片的尺寸不为上述预设尺寸的图标文件的情况下,向上述预设终端发送上述第一图片的尺寸不为上述预设尺寸的提示信息;
上述接收单元401,还用于接收针对上述提示信息的裁剪指令,响应于上述裁剪指令根据上述预设尺寸对上述第一图片进行裁剪;或者,
上述接收单元401,还用于接收上述预设终端设备发送的第二图片,将上述第一图片替换为上述第二图片,并在确定上述第二图片的尺寸为上述预设尺寸的情况下,将上述第二图片确定为上述图标文件。
进一步地,上述配置后的第二配置文件还包括用于指示运行环境的配置文件,上述打包指令还携带上述待打包目标的输出地址,上述编译单元404根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,具体用于:
根据上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置;
上述基于决策树模型的打包装置400还包括:
修改单元407,用于将上述预设工程文件中引用上述第二文件的对象修改为上述参考编译目标,删除上述第四文件和上述待打包目标,并保存上述预设工程文件;
显示单元408,用于在上述输出地址对应的文件位置的用户界面中显示上述预设尺寸的第二图标。
进一步地,上述编译单元404根据上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置,具体用于:
在确定上述配置后的第二配置文件中包括用于指示引用预设编译目标的文件的情况下,对上述预设编译目标进行编译,得到编译结果,上述预设编译目标为上述预设工程文件中的编译目标;
根据上述编译结果以及上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置。
有关上述接收单元401、拷贝单元402、获取单元403、编译单元404、调整单元405、发送单元406、修改单元407以及显示单元408详细的描述可以直接参考上述图2至图3所示的方法实施例中的相关描述直接得到,这里不加赘述。
本申请实施例中,通过对预设工程文件中拷贝参考编译目标得到的待打包目标进行相应的配置和编译,进而得到打包文件,实现了动态创建编译目标,并对动态创建的编译目标进行打包,避免了通过工程文件直接打包所引发的依赖关系复杂,难以处理的问题,同时也可以不限制预设工程文件的形式,适应性强。通过调用决策树模型确定待打包目标的参考名称,即编译后的打包文件的名称,可以适用于批量打包编译目标的场景,提高了批量打包的效率,也提升了打包后的文件的标识度。通过按照参考编译目标对应的配置文件以及对应的配置方式对拷贝出的待打包目标进行配置,无需在对待打包目标进行打包的过程中进行手动进行编译,即不会出现额外的代码提交记录,通过打包脚本进行打包,可以避免手工编译出现的编译错误,减少编译和打包的时间,进而提高打包的效率。
请参阅图5,图5是本申请实施例提供的一种计算机设备的结构示意图,如图5所示,本申请实施例中的计算机设备500可以包括:
处理器501,收发器502和存储器505,此外,上述计算机设备500还可以包括:用户接口504,和至少一个通信总线503。其中,通信总线503用于实现这些组件之间的连接通信。其中,用户接口504可以包括显示屏(Display)、键盘(Keyboard),存储器505可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器505可选的还可以是至少一个位于远离前述处理器501和前述收发器502的存储装置。如图5所示,作为一种计算机存储介质的存储器505中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图5所示的计算机设备500中,收发器502可提供网络通讯功能,以使服务器间可进行通信;而用户接口504主要用于为用户提供输入的接口;而处理器501可以用于调用存储器505中存储的设备控制应用程序,执行如下操作:
接收打包指令,上述打包指令携带参考编译目标的标识;
响应于上述打包指令,拷贝预设工程文件中的上述参考编译目标,得到待打包目标,上述预设工程文件中包括至少一个编译目标;
获取上述预设工程文件的名称和上述至少一个编译目标中各个编译目标的名称,调用预设的决策树模型根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称,并将上述参考名称作为上述待打包目标的文件名称;
获取上述参考编译目标对应的第一配置文件以及上述第一配置文件对应的配置方式,根据上述第一配置文件确定上述待打包目标对应的第二配置文件,并根据上述配置方式对上述第二配置文件进行配置;
根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件。
在一种可能的实现方式中,上述预设的决策树模型包括多个节点,上述多个节点包括根节点、中间节点和叶子节点,上述叶子节点对应不同的生成规则;上述处理器501根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称之前,上述处理器501还用于执行如下操作:
获取上述待打包目标的需求信息,并将上述需求信息转换为上述待打包目标的属性信息;
上述处理器501调用预设的决策树模型根据上述预设工程文件的名称和上述各个编译目标的名称确定上述待打包目标的参考名称,具体用于执行:
根据上述属性信息确定在上述预设的决策树模型中参考路径以及上述参考路径的参考叶子节点;
获取上述参考叶子节点对应的生成规则,根据上述生成规则提取上述预设工程文件的名称中的信息和上述各个编译目标的名称中的信息,并根据提取出的信息生成上述参考名称。
在一种可能的实现方式中,上述处理器501根据上述第一配置文件确定上述待打包目标对应的第二配置文件,具体用于执行:
在第一文件的配置方式为修改路径的情况下,将上述第一文件确定为第二配置文件中的第二文件,并修改引用上述第二文件的对象为上述待打包目标,上述第一文件为上述第一配置文件中的文件;
在第三文件的配置方式为新增配置文件的情况下,拷贝上述第三文件,得到上述第二配置文件中的第四文件,并修改引用上述第四文件的对象为上述待打包目标,上述第三文件为上述第一配置文件中的文件;
上述处理器501修改引用上述第四文件的对象为上述待打包目标之后,上述处理器501还用于执行如下操作:
根据上述第三文件的配置属性调整上述第四文件的配置属性。
在一种可能的实现方式中,上述处理器501拷贝上述第三文件,得到上述第二配置文件中的第四文件,具体用于执行:
在确定第一对象的类型不为预设类型的情况下,将上述第一对象的值赋给第二对象,上述第一对象为上述第三文件中的任一对象,上述第二对象为上述第四文件中的对象,得到上述第二配置文件中的上述第四文件;
在确定上述第一对象的类型为上述预设类型的情况下,将上述第二对象的类型设置为上述预设类型,并拷贝上述第一对象中的第一元素至第二对象中的第二元素,直至已拷贝上述第一对象内的各个第一元素,得到上述第二配置文件中的上述第四文件,上述第一元素为上述第一对象内的任一元素。
在一种可能的实现方式中,上述第二配置文件包括图标文件,上述处理器501修改引用上述第四文件的对象为上述待打包目标之后,上述处理器501还用于执行如下操作:
向预设终端设备发送图片获取请求,上述获取请求携带上述预设工程文件的名称、上述参考编译目标的名称以及上述参考名称;
接收上述预设终端设备发送的第一图片,在确定上述第一图片的尺寸不为上述预设尺寸的图标文件的情况下,向上述预设终端发送上述第一图片的尺寸不为上述预设尺寸的提示信息;
接收针对上述提示信息的裁剪指令,响应于上述裁剪指令根据上述预设尺寸对上述第一图片进行裁剪;或者,
接收上述预设终端设备发送的第二图片,将上述第一图片替换为上述第二图片,并在确定上述第二图片的尺寸为上述预设尺寸的情况下,将上述第二图片确定为上述图标文件。
在一种可能的实现方式中,上述配置后的第二配置文件还包括用于指示运行环境的配置文件,上述打包指令还携带上述待打包目标的输出地址,上述处理器501上述根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,具体用于执行:
根据上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置;
上述处理器501根据配置后的第二配置文件对上述待打包目标进行编译,得到名称为上述参考名称的打包文件之后,上述处理器501还用于执行如下操作:
将上述预设工程文件中引用上述第二文件的对象修改为上述参考编译目标,删除上述第四文件和上述待打包目标,并保存上述预设工程文件;
在上述输出地址对应的文件位置的用户界面中显示上述预设尺寸的第二图标。
在一种可能的实现方式中,上述处理器501根据上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置,具体用于执行:
在确定上述配置后的第二配置文件中包括用于指示引用预设编译目标的文件的情况下,对上述预设编译目标进行编译,得到编译结果,上述预设编译目标为上述预设工程文件中的编译目标;
根据上述编译结果以及上述运行环境对应的打包方式对上述待打包目标进行编译,得到名称为上述参考名称的打包文件,并将上述打包文件存储在上述输出地址对应的文件位置。
应当理解,在一些可行的实施方式中,上述处理器501可以是中央处理单元(central processing unit,CPU),该处理器501还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器505可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器505的一部分还可以包括非易失性随机存取存储器。
具体实现中,上述计算机设备500可通过其内置的各个功能模块执行如上述图2和图3中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例中,通过对预设工程文件中拷贝参考编译目标得到的待打包目标进行相应的配置和编译,进而得到打包文件,实现了动态创建编译目标,并对动态创建的编译目标进行打包,避免了通过工程文件直接打包所引发的依赖关系复杂,难以处理的问题,同时也可以不限制预设工程文件的形式,适应性强。通过调用决策树模型确定待打包目标的参考名称,即编译后的打包文件的名称,可以适用于批量打包编译目标的场景,提高了批量打包的效率,也提升了打包后的文件的标识度。通过按照参考编译目标对应的配置文件以及对应的配置方式对拷贝出的待打包目标进行配置,无需在对待打包目标进行打包的过程中进行手动进行编译,即不会出现额外的代码提交记录,通过打包脚本进行打包,可以避免手工编译出现的编译错误,减少编译和打包的时间,进而提高打包的效率。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的计算机设备所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图2或图3任一个所对应实施例中的对任一方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例上述的基于决策树模型的打包方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于决策树模型的打包方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,上述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random accessmemory,RAM)等。
需要强调的是,为进一步保证上述数据的私密和安全性,上述数据还可以存储于一区块链的节点中。其中,本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种基于决策树模型的打包方法,其特征在于,包括:
接收打包指令,所述打包指令携带参考编译目标的标识;
响应于所述打包指令,拷贝预设工程文件中的所述参考编译目标,得到待打包目标,所述预设工程文件中包括至少一个编译目标;
获取所述预设工程文件的名称和所述至少一个编译目标中各个编译目标的名称,调用预设的决策树模型根据所述预设工程文件的名称和所述各个编译目标的名称确定所述待打包目标的参考名称,并将所述参考名称作为所述待打包目标的文件名称;
获取所述参考编译目标对应的第一配置文件以及所述第一配置文件对应的配置方式,根据所述第一配置文件确定所述待打包目标对应的第二配置文件,并根据所述配置方式对所述第二配置文件进行配置;
根据配置后的第二配置文件对所述待打包目标进行编译,得到名称为所述参考名称的打包文件。
2.根据权利要求1所述的方法,其特征在于,所述预设的决策树模型包括多个节点,所述多个节点包括根节点、中间节点和叶子节点,所述叶子节点对应不同的生成规则;所述根据所述预设工程文件的名称和所述各个编译目标的名称确定所述待打包目标的参考名称之前,所述方法还包括:
获取所述待打包目标的需求信息,并将所述需求信息转换为所述待打包目标的属性信息;
所述调用预设的决策树模型根据所述预设工程文件的名称和所述各个编译目标的名称确定所述待打包目标的参考名称,包括:
根据所述属性信息确定在所述预设的决策树模型中参考路径以及所述参考路径的参考叶子节点;
获取所述参考叶子节点对应的生成规则,根据所述生成规则提取所述预设工程文件的名称中的信息和所述各个编译目标的名称中的信息,并根据提取出的信息生成所述参考名称。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一配置文件确定所述待打包目标对应的第二配置文件,包括:
在第一文件的配置方式为修改路径的情况下,将所述第一文件确定为第二配置文件中的第二文件,并修改引用所述第二文件的对象为所述待打包目标,所述第一文件为所述第一配置文件中的文件;
在第三文件的配置方式为新增配置文件的情况下,拷贝所述第三文件,得到所述第二配置文件中的第四文件,并修改引用所述第四文件的对象为所述待打包目标,所述第三文件为所述第一配置文件中的文件;
所述修改引用所述第四文件的对象为所述待打包目标之后,所述方法还包括:
根据所述第三文件的配置属性调整所述第四文件的配置属性。
4.根据权利要求3所述的方法,其特征在于,所述拷贝所述第三文件,得到所述第二配置文件中的第四文件,包括:
在确定第一对象的类型不为预设类型的情况下,将所述第一对象的值赋给第二对象,所述第一对象为所述第三文件中的任一对象,所述第二对象为所述第四文件中的对象,得到所述第二配置文件中的所述第四文件;
在确定所述第一对象的类型为所述预设类型的情况下,将所述第二对象的类型设置为所述预设类型,并拷贝所述第一对象中的第一元素至第二对象中的第二元素,直至已拷贝所述第一对象内的各个第一元素,得到所述第二配置文件中的所述第四文件,所述第一元素为所述第一对象内的任一元素。
5.根据权利要求3所述的方法,其特征在于,所述第二配置文件包括图标文件,所述修改引用所述第四文件的对象为所述待打包目标之后,所述方法还包括:
向预设终端设备发送图片获取请求,所述获取请求携带所述预设工程文件的名称、所述参考编译目标的名称以及所述参考名称;
接收所述预设终端设备发送的第一图片,在确定所述第一图片的尺寸不为所述预设尺寸的图标文件的情况下,向所述预设终端发送所述第一图片的尺寸不为所述预设尺寸的提示信息;
接收针对所述提示信息的裁剪指令,响应于所述裁剪指令根据所述预设尺寸对所述第一图片进行裁剪;或者,
接收所述预设终端设备发送的第二图片,将所述第一图片替换为所述第二图片,并在确定所述第二图片的尺寸为所述预设尺寸的情况下,将所述第二图片确定为所述图标文件。
6.根据权利要求5所述的方法,其特征在于,所述配置后的第二配置文件还包括用于指示运行环境的配置文件,所述打包指令还携带所述待打包目标的输出地址,所述根据配置后的第二配置文件对所述待打包目标进行编译,得到名称为所述参考名称的打包文件,包括:
根据所述运行环境对应的打包方式对所述待打包目标进行编译,得到名称为所述参考名称的打包文件,并将所述打包文件存储在所述输出地址对应的文件位置;
所述根据配置后的第二配置文件对所述待打包目标进行编译,得到名称为所述参考名称的打包文件之后,所述方法还包括:
将所述预设工程文件中引用所述第二文件的对象修改为所述参考编译目标,删除所述第四文件和所述待打包目标,并保存所述预设工程文件;
在所述输出地址对应的文件位置的用户界面中显示所述预设尺寸的第二图标。
7.根据权利要求6所述的方法,其特征在于,所述根据所述运行环境对应的打包方式对所述待打包目标进行编译,得到名称为所述参考名称的打包文件,并将所述打包文件存储在所述输出地址对应的文件位置,包括:
在确定所述配置后的第二配置文件中包括用于指示引用预设编译目标的文件的情况下,对所述预设编译目标进行编译,得到编译结果,所述预设编译目标为所述预设工程文件中的编译目标;
根据所述编译结果以及所述运行环境对应的打包方式对所述待打包目标进行编译,得到名称为所述参考名称的打包文件,并将所述打包文件存储在所述输出地址对应的文件位置。
8.一种基于决策树模型的打包装置,其特征在于,包括:
接收单元,用于接收打包指令,所述打包指令携带了参考编译目标的标识;
拷贝单元,用于响应于所述打包指令,拷贝预设工程文件中的所述参考编译目标,得到待打包目标,所述预设工程文件中包括至少一个编译目标;
获取单元,用于获取所述预设工程文件的名称和所述至少一个编译目标中各个编译目标的名称,调用预设的决策树模型根据所述预设工程文件的名称和所述各个编译目标的名称确定所述待打包目标的参考名称,并将所述参考名称作为所述待打包目标的文件名称;
所述获取单元,还用于获取所述参考编译目标对应的第一配置文件以及所述第一配置文件对应的配置方式,根据所述第一配置文件确定所述待打包目标对应的第二配置文件,并根据所述配置方式对所述第二配置文件进行配置;
编译单元,用于根据配置后的第二配置文件对所述待打包目标进行编译,得到名称为所述参考名称的打包文件。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111533826.0A CN114237615A (zh) | 2021-12-15 | 2021-12-15 | 一种基于决策树模型的打包方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111533826.0A CN114237615A (zh) | 2021-12-15 | 2021-12-15 | 一种基于决策树模型的打包方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114237615A true CN114237615A (zh) | 2022-03-25 |
Family
ID=80756287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111533826.0A Pending CN114237615A (zh) | 2021-12-15 | 2021-12-15 | 一种基于决策树模型的打包方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237615A (zh) |
-
2021
- 2021-12-15 CN CN202111533826.0A patent/CN114237615A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825362B (zh) | 低代码应用软件开发系统及方法 | |
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
AU2018310287A1 (en) | Smart contract processing method and apparatus | |
CN108319460B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
CN111290778A (zh) | Ai模型的包装方法、平台及电子设备 | |
CN111258900A (zh) | 接口测试脚本的生成方法、系统、设备及存储介质 | |
US20040078180A1 (en) | Method for automatically decomposing dynamic system models into submodels | |
CN110580174B (zh) | 应用组件生成方法、服务器及终端 | |
CN109976723B (zh) | 一种算法开发平台、算法开发方法及计算机可读存储介质 | |
CN108958843A (zh) | 基于轻量化脚本的插件构建方法、系统、设备及介质 | |
CN111026439B (zh) | 应用程序的兼容方法、装置、设备及计算机存储介质 | |
CN107797805B (zh) | 一种代码封装方法、装置及计算机可读存储介质 | |
US10922208B2 (en) | Observer for simulation test and verification | |
CN112699042B (zh) | 一种单元测试案例的生成方法及装置 | |
CN112861456A (zh) | 工艺ip仿真模型封装及库管理方法及系统、存储介质 | |
CN113900633A (zh) | 物联网场景的低代码开发方法及装置、存储介质、开发平台 | |
CN116755677A (zh) | 原子服务编排方法、装置、设备及存储介质 | |
CN114296883B (zh) | 一种轻载虚拟化网络实验行为仿真器构建和调度方法 | |
CN114237615A (zh) | 一种基于决策树模型的打包方法及相关设备 | |
CN112685043A (zh) | 回调函数的异步转化方法、装置、设备及可读存储介质 | |
CN110673890A (zh) | 插件调用方法、系统、介质及装置 | |
CN117056317B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
WO2024139538A1 (zh) | 脚本生成方法、装置、计算设备、系统及可读存储介质 | |
US20230342115A1 (en) | Method for generating source code | |
CN118550784A (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 |