CN117170646A - 检查方法中的注解信息方法、装置、设备及存储介质 - Google Patents

检查方法中的注解信息方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117170646A
CN117170646A CN202311267985.XA CN202311267985A CN117170646A CN 117170646 A CN117170646 A CN 117170646A CN 202311267985 A CN202311267985 A CN 202311267985A CN 117170646 A CN117170646 A CN 117170646A
Authority
CN
China
Prior art keywords
compiled
annotation information
compiling
added
methods
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
Application number
CN202311267985.XA
Other languages
English (en)
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.)
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
Original Assignee
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent 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 Zhejiang Geely Holding Group Co Ltd, Zhejiang Zeekr Intelligent Technology Co Ltd filed Critical Zhejiang Geely Holding Group Co Ltd
Priority to CN202311267985.XA priority Critical patent/CN117170646A/zh
Publication of CN117170646A publication Critical patent/CN117170646A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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

  • Stored Programmes (AREA)

Abstract

一种检查方法中的注解信息方法、装置、设备及计算机可读存储介质。所述方法包括:获取待编译项目的源码,源码构成多个待编译方法;对源码执行编译任务,编译任务用于对源码进行编译以及检查多个待编译方法有无添加注解信息;在编译完成且多个待编译方法均添加注解信息的情况下,判定编译任务执行成功;在多个待编译方法中至少一个待编译方法未添加注解信息的情况下,判定编译任务执行失败。本申请在编译任务中添加了对方法有无注解信息的检查,并在任一方法未添加注解信息的情况下,判定编译任务失败。进而能够保证通过编译的源码均是添加了注解信息的,从而能够检查出方法有无添加对应的注解,以降低项目后续的维护难度。

Description

检查方法中的注解信息方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种检查方法中的注解信息方法、装置、设备及计算机可读存储介质。
背景技术
在软件开发过程中,开发者可以对创建的方法编写对应的注解,以便于后续对软件进行维护。
然而,实际的项目开发过程中,由于开发者的编码习惯、项目开发的紧急程度等原因,导致项目中的很多方法并没有被添加对应的注解。而未在方法中添加注解也不会影响对项目的常规编译检查,因此未添加注解较难被发现,如要进行排查需耗费大量人力时间,可能会延误开发进度,并存在遗漏。
发明内容
为克服相关技术中存在的问题,本申请提供了一种检查方法中的注解信息方法、装置、设备及计算机可读存储介质,能够解决上述问题。
根据本申请实施例的第一方面,提供一种检查方法中的注解信息方法,所述方法包括:获取待编译项目的源码,所述源码构成多个待编译方法;对所述源码执行编译任务,所述编译任务用于对所述源码进行编译以及检查所述多个待编译方法有无添加注解信息;在编译完成且所述多个待编译方法均添加注解信息的情况下,判定所述编译任务执行成功;在所述多个待编译方法中至少一个待编译方法未添加注解信息的情况下,判定所述编译任务执行失败。
根据本申请实施例的第二方面,提供一种检查方法中的注解信息装置,所述装置包括:获取单元,用于获取待编译项目的源码,所述源码构成多个待编译方法;编译单元,用于对所述源码执行编译任务,所述编译任务用于对所述源码进行编译以及检查所述多个待编译方法有无添加注解信息;判定单元,用于在编译完成且所述多个待编译方法均添加注解信息的情况下,判定所述编译任务执行成功;在所述多个待编译方法中至少一个待编译方法未添加注解信息的情况下,判定所述编译任务执行失败。
根据本申请实施例的第三方面,提供一种电子设备,包括:处理器、存储器;所述存储器,用于存储计算机程序;所述处理器,用于通过调用所述计算机程序,执行如第一方面所述的检查方法中的注解信息方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的检查方法中的注解信息方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请在编译任务中添加了对方法有无注解信息的检查,并在任一方法未添加注解信息的情况下,判定编译任务失败。进而能够保证通过编译的源码均是添加了注解信息的,从而能够检查出方法有无添加对应的注解,以降低项目后续的维护难度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请根据一示例性实施例示出的一种检查方法中的注解信息方法的流程图。
图2是本申请根据一示例性实施例示出的一种检查方法中的注解信息方法的流程图。
图3是本申请根据一示例性实施例示出的一种配置注解检查插件的示意流程图。
图4是本申请根据一示例性实施例示出的一种检查方法中的注解信息装置所在电子设备的结构示意图。
图5是本申请根据一示例性实施例示出的一种检查方法中的注解信息装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
通常情况下,想要检查方法有无添加注解,一般会通过人工代码检查(review)的方式,对源码中没有对方法进行注解的小问题。但这种方式存在部分缺陷:一方面,人工代码检查需要耗费大量的人力时间,在项目比较紧急的情况下,可能会延误项目的开发进度,推迟项目上线期限;另一方面,人工代码检查也容易造成遗漏,若存在一部分方法未添加注解,且未被排查出来,则后续可能对该项目进行维护时存在挑战。
为解决上述问题,本申请提出了一种检查方法中的注解信息方法。图1是根据本申请的实施例示出的一种检查方法中的注解信息方法的示意流程图,所述方法包括:
在步骤S101中,获取待编译项目的源码,所述源码构成多个待编译方法;
在步骤S102中,对所述源码执行编译任务,所述编译任务用于对所述源码进行编译以及检查所述多个待编译方法有无添加注解信息;
在步骤S103中,在编译完成且所述多个待编译方法均添加注解信息的情况下,判定所述编译任务执行成功;在所述多个待编译方法中至少一个待编译方法未添加注解信息的情况下,判定所述编译任务执行失败。
在一个实施例中,所述待编译方法可以包括:由所述待编译项目中的多段源码组合形成的用于实现特定功能的模块。
在遵循引用规则的情况下,其他部分的源码可以对该待编译方法进行引用,以通过编译好的该待编译方法实现其对应的特定功能。
在一个实施例中,所述待编译方法可以是java语言中的方法(Method),在另一个实施例中,在其他编程语言中也可以被称为函数(Function)。
在一个实施例中,待编译方法的注解信息用于对待编译方法进行解释说明。
由于添加注解信息的目的是为了方便后续对代码进行维护,因而注解信息可以包括能用于进行后续维护的内容。例如对待编译方法能够实现的特定功能的具体解释说明。
需要说明的是,注解信息仅能够供技术人员便捷快速地掌握对应待编译方法的相关信息以进行代码维护,而并不参与待编译项目中的功能的实现,因而无法对注解信息进行编译,通常对源码的编译也不包括对注解信息进行编译。
在一个实施例中,所述源码构成至少一个待编译方法。
在一个实施例中,所述获取待编译项目的源码,包括:由多位技术人员分段上传的多段源码,拼接以形成所述待编译项目。
在一个实施例中,对所述源码执行编译任务,所述编译任务用于对所述源码进行编译以及检查所述多个待编译方法有无添加注解信息。
将检查多个待编译方法有无添加注解信息添加入编译任务,可以使待编译方法有无添加注解信息也能影响编译任务的成功与否,从而在对源码进行编译的过程中完成对待编译方法的注解信息的检查。
在一个实施例中,在编译完成且所述多个待编译方法均添加注解信息的情况下,判定所述编译任务执行成功。
编译任务执行成功的条件包括对源码的编译完成和多个待编译方法均添加注解信息,因而在编译任务执行成功时,表明该待编译项目的源码不存在语法错误或逻辑错误,并且源码中的所有待编译方法均包含对应的注解信息以方便后续维护。
在一个实施例中,在编译失败的情况下,判定所述编译任务执行失败。编译失败即表明源码中存在语法错误或逻辑错误,编译器无法对源码的含义进行识别,此时技术人员需要对源码的内容进行检查,以排除代码错误。
在一个实施例中,在所述多个待编译方法中至少一个待编译方法未添加注解信息的情况下,判定所述编译任务执行失败。
即便对源码的编译完成,但若存在至少一个待编译方法未添加注解信息,则编译任务依旧执行失败。虽然有无注解信息并不影响待编译项目的功能实现,但待编译项目的源码在编译任务执行失败的情况下,无法将待编译项目或相应的源码上线,以避免后续对代码进行维护时,因缺少注解信息对相应的待编译方法的解释说明,而导致对代码进行的维护工作难以开展。
本申请通过对源码执行包括编译和对注解信息的检查的编译任务,并在检查出有任一待编译方法未添加注解信息的情况下,判定编译任务失败,从而避免了未添加注解信息的源码通过编译后上线,导致后续对该源码进行维护时,由于缺乏必要的注解信息,使得给维护工作带来较大的挑战。
图2是根据本申请的实施例示出的一种检查方法中的注解信息方法的示意流程图,如图2所示,所述检查所述多个待编译方法有无添加注解信息,方法包括:
在步骤S201中,获取所述待编译项目的组成文件;
在步骤S202中,对所述组成文件进行解析生成抽象语法树;
在步骤S203中,从所述抽象语法树中获取方法声明节点,并获取所述方法声明节点的描述属性;其中,所述方法声明节点与所述待编译方法一一对应;
在步骤S204中,在所述描述属性的值为空的情况下,确定相应的方法声明节点对应的所述待编译方法未添加注解信息;在所述描述属性的值不为空的情况下,确定相应的方法声明节点对应的所述待编译方法已添加注解信息。
在一个实施例中,所述检查所述多个待编译方法有无添加注解信息由创建的插件实现。
在一个实施例中,获取所述待编译项目的组成文件,包括:利用获取项目目录(getProiect Dirctory)的方法获取待编译项目的源码所在的文件夹地址并将所述文件夹地址下的所有组成文件添加入文件列表中;其中,所述获取工程类的方法是通过插件接口(maven-plugin-api)从包含插件需要的依赖关系的依赖库中确定的。
在一个实施例中,所述文件夹地址下的所有组成文件添加入文件列表,包括:将所述文件夹地址下的java格式的文件添加入java文件列表中。
在一个实施例中,所述对所述组成文件进行解析生成抽象语法树,包括:遍历所述文件列表,并对所述文件列表中的所有组成文件进行解析并生成抽象语法树。
在一个实施例中,在所述组成文件为java格式的文件,所述文件列表为java文件列表的情况下,可以通过java的开源软件开发工具包(javaparser sdk)中的解析方法(javaparser)对java文件进行抽象语法树解析。
在一个实施例中,所述抽象语法树(Abstract Syntax Tree,AST)包括:将组成文件中的代码解析成树状结构,剔除多余的信息,只保留语法特征,并形成xml格式的文件。
在一个实施例中,所述语法特征包括方法声明节点(MethodDeclaration)。
在一个实施例中,从所述抽象语法树中获取方法声明节点,并获取所述方法声明节点的描述属性;其中,所述方法声明节点与所述待编译方法一一对应。
方法声明节点包含了待编译方法的所有信息和属性,包括修饰符、返回类型、方法名、参数列表和方法体等。方法声明节点是从抽象语法树中构建的一个对象,在编译器或代码分析工具中可以使用该对象来访问和操作方法的各个部分。
其中,方法声明节点中包含描述(descriotion)属性,在所述描述属性的值为空的情况下,确定相应的方法声明节点对应的所述待编译方法未添加注解信息;在所述描述属性的值不为空的情况下,确定相应的方法声明节点对应的所述待编译方法已添加注解信息。
在一个实施例中,所述检查所述多个待编译方法有无添加注解信息,包括:调用预先配置的注解检查插件,其中,所述注解检查插件包括解析模块、解析子模块,其中:所述解析模块,用于提供所述抽象语法树的解析;所述解析子模块,用于从所述抽象语法树中获取所述方法声明节点,并确定所述方法声明节点对应的所述待编译方法有无添加注解信息。
在一个实施例中,所述注解检查插件可以实现执行(execute)方法,所述执行方法用于实现步骤S201-S204所述的检查所述多个待编译方法有无添加注解信息。
因此,基于解析模块和解析子模块,预先配置的注解检查插件可以对待编译项目中的组成文件进行抽象语法树解析,并检查所述多个待编译方法有无添加注解信息。
图3是根据本申请的实施例示出的一种配置注解检查插件的示意流程图。
如图3所示,所述注解检查插件通过以下方法配置:
在步骤S301中,根据模板创建注解检查插件;
在步骤S302中,在创建的注解检查插件中引入插件接口(maven-plugin-api)并引入依赖库;
在步骤S303中,在注解检查插件的依赖配置中添加解析模块,所述解析模块用于提供所述抽象语法树的解析;
在步骤S304中,在注解检查插件中创建解析子模块,所述解析子模块用于实现execute方法,即步骤S201-S204所述的检查所述多个待编译方法有无添加注解信息的方法。
下面以开发适用于java语言的插件为例进行说明。
在一个实施例中,根据模板创建注解检查插件,包括:在java开发工具中选择一个内置原型模板作为创建注解检查插件。例如,这个内置原型模板可以是org.apache.maven.archetypes:maven-archetype-mojo,注解检查插件可以命名为method-comments-check-maven-plugin。
在一个实施例中,在创建后的注解检查插件工程中,核心配置文件(pom.xml)可以自动引入maven-plugin-api依赖库,并修改注解检查插件中的pom.xml文件,并增加依赖配置(Dependency)。
在一个实施例中,可以在Dependency配置中添加javaparser-sdk,以对javaparser-sdk进行引入。其中,javaparser-sdk主要用于对java文件进行抽象语法树解析,也即解析模块。
在一个实施例中,在注解检查插件中,创建继承抽象类(AbstractMojo)的自定义类(commentsCheck),即解析子模块,并在commentsCheck类中实现execute方法。
在一个实施例中,Maven插件需要继承AbstractMojo以实现execute方法。
在execute方法中,通过步骤S201-204实现检查所述多个待编译方法有无添加注解信息。
在一个实施例中,还包括:将所述注解检查插件通过打包命令(mvn cleanpackage)编译成.jar包的形式,以便于调用。
在一个实施例中,在所述待编译项目的编译任务的编译配置节点中添加所述注解检查插件,以在对所述待编译项目的源码执行所述编译任务时对所述多个待编译方法有无添加注解信息进行检查。
例如,仍然以java语言为例,在需要进行代码检查的java项目中修改pom的<build>节点,通过在该节点中增加插件(plugin),引入注解检查插件。
在一个实施例中,对添加注解检查插件后的编译配置节点进行打包,以生成编译任务。
例如,通过mvn clean package命令将编译任务打包,就可以在对源码进行编译的过程中,对方法有无添加注解信息进行检查。
在一个实施例中,所述多个待编译方法中的任一待编译方法的注解信息包括以下至少之一:所述任一待编译方法的类、参数、变量、返回值。
待编译方法的注解信息与该方法的内容有密切关系。检查注解信息的目的是为保证后续对待编译方法进行维护时,可以根据注解信息的内容方便技术人员对待编译方法进行维护。因此,不同的待编译方法可以具有不同的注解信息。一般情况下,对待编译方法的后续维护通常会对待编译方法中设置的变量、参数等做出确认或修改,并确认该待编译方法的返回值、类等其他信息。
技术人员可以根据不同待编译方法在维护时的不同需求,选择注解信息的具体内容。
在一个实施例中,所述方法还包括:根据所述检查所述多个待编译方法有无添加注解信息的结果,生成注解检查报告。
进一步的,编译任务执行完后,可以根据编译任务的执行情况出具报告。例如,报告中可以包括编译任务是否完成,若执行失败,失败原因是对源码的编译失败还是存在待编译方法未添加注解信息。
进一步的,在确认是由待编译方法未添加注解信息引起的编译任务执行失败的情况下,可以生成注解检查报告。
在一个实施例中,所述注解检查报告包括以下至少之一:未添加注解信息的方法的数量;未添加注解信息的方法的定位;未添加注解信息的方法对应的源码。
生成的注解检查报告可以对以下至少之一做出说明:总待编译方法的数量,未添加注解信息的待编译方法数量,未添加注解信息的待编译方法的定位,未添加注解信息的待编译方法的负责人员,未添加注解信息的待编译方法对应的源码。
根据注解检查报告,技术人员可以快速确定待编译项目的源码中的待编译方法存在未添加注解信息的待编译方法,也可以通过注解检查报告确定未添加注解信息的待编译方法的定位,以方便技术人员找到该未添加注解信息的待编译方法并对其添加注解信息。
在一个实施例中,注解检查插件实现的execute方法,还包括:统计从抽象语法树中获取的方法声明节点的数量;预设未添加注解信息的待编译方法的计数值为0,在遍历方法声明节点的过程中,每当描述属性的值为空,则将未添加注解信息的待编译方法的计数值加1。
在一个实施例中,所述方法还包括:确定值为空的描述属性对应的方法声明节点,并通过所述对应的方法声明节点确定未添加注解信息的待编译方法的定位。
在一个实施例中,所述方法还包括:确定未添加注解信息的待编译方法,获取未添加注解信息的待编译方法的属性值。
该属性值为待编译方法的标记,例如,可以是包含负责人员的信息,可以包含末次修改时间等,以为注解检查报告提供信息。
与本申请的方法项实施例对应,本申请还提供了相应的检查方法中的注解信息装置实施例。
图4是一示例性实施例提供的一种设备的示意结构图。请参考图4,在硬件层面,该设备包括处理器410、网络接口420、内存430以及非易失性存储器440,当然还可能包括其他业务所需要的硬件。本申请一个或多个实施例可以基于软件方式来实现,比如由处理器410从非易失性存储器440中读取对应的计算机程序到内存430中然后运行。当然,除了软件实现方式之外,本申请一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图5,图5是本申请一实施例中检查方法中的注解信息装置的框图。该检查方法中的注解信息装置可以应用于如图4所示的电子设备中,以实现本申请的技术方案。其中,所述装置包括:
获取单元510,用于获取待编译项目的源码,所述源码构成多个待编译方法;
编译单元520,用于对所述源码执行编译任务,所述编译任务用于对所述源码进行编译以及检查所述多个待编译方法有无添加注解信息;
判定单元530,用于在编译完成且所述多个待编译方法均添加注解信息的情况下,判定所述编译任务执行成功;在所述多个待编译方法中至少一个待编译方法未添加注解信息的情况下,判定所述编译任务执行失败。
可选的,所述检查所述多个待编译方法有无添加注解信息,包括:获取所述待编译项目的组成文件;对所述组成文件进行解析生成抽象语法树;从所述抽象语法树中获取方法声明节点,并获取所述方法声明节点的描述属性;其中,所述方法声明节点与所述待编译方法一一对应;在所述描述属性的值为空的情况下,确定相应的方法声明节点对应的所述待编译方法未添加注解信息;在所述描述属性的值不为空的情况下,确定相应的方法声明节点对应的所述待编译方法已添加注解信息。
可选的,所述检查所述多个待编译方法有无添加注解信息,包括:调用预先配置的注解检查插件,其中,所述注解检查插件包括解析模块、解析子模块,其中:所述解析模块,用于提供所述抽象语法树的解析;所述解析子模块,用于从所述抽象语法树中获取所述方法声明节点,并确定所述方法声明节点对应的所述待编译方法有无添加注解信息。
可选的,在所述待编译项目的编译任务的编译配置节点中添加所述注解检查插件,以在对所述待编译项目的源码执行所述编译任务时对所述多个待编译方法有无添加注解信息进行检查。
可选的,所述多个待编译方法中的任一待编译方法的注解信息包括以下至少之一:所述任一待编译方法的类、参数、变量、返回值。
可选的,所述装置还用于:根据所述检查所述多个待编译方法有无添加注解信息的结果,生成注解检查报告。
可选的,所述注解检查报告包括以下至少之一:未添加注解信息的方法的数量;未添加注解信息的方法的定位;未添加注解信息的方法对应的源码。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关指出参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员应明白,本申请一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本申请一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本申请一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅为本申请一个或多个实施例的实施例而已,并不用于限制本申请一个或多个实施例。对于本领域技术人员来说,本申请一个或多个实施例可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (10)

1.一种检查方法中的注解信息方法,其特征在于,所述方法包括:
获取待编译项目的源码,所述源码构成多个待编译方法;
对所述源码执行编译任务,所述编译任务用于对所述源码进行编译以及检查所述多个待编译方法有无添加注解信息;
在编译完成且所述多个待编译方法均添加注解信息的情况下,判定所述编译任务执行成功;
在所述多个待编译方法中至少一个待编译方法未添加注解信息的情况下,判定所述编译任务执行失败。
2.根据权利要求1所述的方法,其特征在于,所述检查所述多个待编译方法有无添加注解信息,包括:
获取所述待编译项目的组成文件;
对所述组成文件进行解析生成抽象语法树;
从所述抽象语法树中获取方法声明节点,并获取所述方法声明节点的描述属性;其中,所述方法声明节点与所述待编译方法一一对应;
在所述描述属性的值为空的情况下,确定相应的方法声明节点对应的所述待编译方法未添加注解信息;
在所述描述属性的值不为空的情况下,确定相应的方法声明节点对应的所述待编译方法已添加注解信息。
3.根据权利要求2所述的方法,其特征在于,所述检查所述多个待编译方法有无添加注解信息,包括:调用预先配置的注解检查插件,其中,所述注解检查插件包括解析模块、解析子模块,其中:
所述解析模块,用于提供所述抽象语法树的解析;
所述解析子模块,用于从所述抽象语法树中获取所述方法声明节点,并确定所述方法声明节点对应的所述待编译方法有无添加注解信息。
4.根据权利要求3所述的方法,其特征在于,在所述待编译项目的编译任务的编译配置节点中添加所述注解检查插件,以在对所述待编译项目的源码执行所述编译任务时对所述多个待编译方法有无添加注解信息进行检查。
5.根据权利要求1所述的方法,其特征在于,所述多个待编译方法中的任一待编译方法的注解信息包括以下至少之一:
所述任一待编译方法的类、参数、变量、返回值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述检查所述多个待编译方法有无添加注解信息的结果,生成注解检查报告。
7.根据权利要求6所述的方法,其特征在于,所述注解检查报告包括以下至少之一:
未添加注解信息的方法的数量;
未添加注解信息的方法的定位;
未添加注解信息的方法对应的源码。
8.一种检查方法中的注解信息装置,其特征在于,所述装置包括:
获取单元,用于获取待编译项目的源码,所述源码构成多个待编译方法;
编译单元,用于对所述源码执行编译任务,所述编译任务用于对所述源码进行编译以及检查所述多个待编译方法有无添加注解信息;
判定单元,用于在编译完成且所述多个待编译方法均添加注解信息的情况下,判定所述编译任务执行成功;在所述多个待编译方法中至少一个待编译方法未添加注解信息的情况下,判定所述编译任务执行失败。
9.一种电子设备,其特征在于,包括:处理器、存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于通过调用所述计算机程序,执行如权利要求1-7中任一项所述的检查方法中的注解信息方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一项所述的检查方法中的注解信息方法。
CN202311267985.XA 2023-09-27 2023-09-27 检查方法中的注解信息方法、装置、设备及存储介质 Pending CN117170646A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311267985.XA CN117170646A (zh) 2023-09-27 2023-09-27 检查方法中的注解信息方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311267985.XA CN117170646A (zh) 2023-09-27 2023-09-27 检查方法中的注解信息方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117170646A true CN117170646A (zh) 2023-12-05

Family

ID=88945018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311267985.XA Pending CN117170646A (zh) 2023-09-27 2023-09-27 检查方法中的注解信息方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117170646A (zh)

Similar Documents

Publication Publication Date Title
CN106919434B (zh) 一种代码生成方法及装置
US8028276B1 (en) Method and system for generating a test file
CN111399853B (zh) 机器学习模型与自定义算子的模板化部署方法
US20080235661A1 (en) System and method for using annotations to automatically generate a framework for a custom javaserver faces (jsf) component
US20070011669A1 (en) Software migration
US10303467B2 (en) Target typing-dependent combinatorial code analysis
CN114691464A (zh) 一种接口测试方法、计算机设备及计算机可读存储介质
EP3974964A1 (en) Automated generation of software patches
CN112667287A (zh) 规则文件的创建方法、装置、设备及计算机可读存储介质
Heymans et al. A code tagging approach to software product line development: An application to satellite communication libraries
Popoola et al. EMG: A domain-specific transformation language for synthetic model generation
Zhao UML model to fault tree model transformation for dependability analysis
KR20030015200A (ko) 소프트웨어 컴파일러들을 위해 내장된 시스템들 용의튼튼한 로깅 시스템
Tuong et al. Deeply integrating C11 code support into Isabelle/PIDE
US20140040872A1 (en) Systems and methods for testing a compiler through compile-time decision feedback
CN117170646A (zh) 检查方法中的注解信息方法、装置、设备及存储介质
US20050010895A1 (en) Software Specification Processing System
Balogh et al. Workflow-driven tool integration using model transformations
Butkevich et al. Compiler and tool support for debugging object protocols
Lin et al. Support for safety case generation via model transformation
Schöne et al. Incremental causal connection for self-adaptive systems based on relational reference attribute grammars
Ha et al. Meta-validation of UML structural diagrams and behavioral diagrams with consistency rules
Jang et al. Design of an Algorithm for the Validation of SCL in Digital Substations
Vasaiely Interactive simulation of sysml models using modelica
MaIm et al. Static flow analysis of the Action Language for Foundational UML

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