CN115437643A - 项目代码转换方法、装置、设备及存储介质 - Google Patents

项目代码转换方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115437643A
CN115437643A CN202211083700.2A CN202211083700A CN115437643A CN 115437643 A CN115437643 A CN 115437643A CN 202211083700 A CN202211083700 A CN 202211083700A CN 115437643 A CN115437643 A CN 115437643A
Authority
CN
China
Prior art keywords
code file
project
xml
java code
attribute
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
CN202211083700.2A
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.)
Ping An E Wallet Electronic Commerce Co Ltd
Original Assignee
Ping An E Wallet Electronic Commerce 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 Ping An E Wallet Electronic Commerce Co Ltd filed Critical Ping An E Wallet Electronic Commerce Co Ltd
Priority to CN202211083700.2A priority Critical patent/CN115437643A/zh
Publication of CN115437643A publication Critical patent/CN115437643A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请为项目开发技术领域,本申请提供了一种项目代码转换方法、装置、设备及存储介质,其中,所述方法包括:获取待转换的项目,确定所述项目的转换需求,根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件,响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程,从而通过预先构建的插件将项目中的XML代码文件自动转换为XML代码文件,无需借助人工,提高了项目代码的转换效率。

Description

项目代码转换方法、装置、设备及存储介质
技术领域
本申请涉及项目开发技术领域,具体而言,本申请涉及一种项目代码转换方法、装置、设备及存储介质。
背景技术
随着IT行业的飞速发展,业界前沿技术不断更新换代,具备高容错性、弹性扩展、资源共享、灵活配置、快速计算等特性的分布式系统异军突起,被广泛运行到互联网各个领域。传统的集中式部署的大型主机系统纷纷面临着系统需要快速运维转型及升级换代的境况,以及将逐步退出历史舞台。
而传统的大型主机系统的转型升级,由于系统框架及技术组件与主流分布式架构所使用的编程语言不同,在转型过程中不可避免需要将已开发的项目进行代码重写,即两种的编程语言进行相互转换,如将SpringCloud项目中的XML代码文件转换为JAVA代码文件。但现有代码转换方面,编程语言的转换是人工方式完成的,需要耗费大量人力,且开发效率较低。
发明内容
本申请的主要目的为提供一种项目代码转换方法、装置、设备及存储介质,以提高项目代码的转换效率。
为了实现上述发明目的,本申请提供一种项目代码转换方法,包括:
获取待转换的项目;
确定所述项目的转换需求;
根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件;
响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程。
优选地,所述根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件,包括:
解析所述XML代码文件,得到XML解析文件;
识别所述XML解析文件中带BEAN标识的XML节点;
确定所述XML节点中的所有属性,调用所述插件对所述XML节点中的所有属性进行调整,得到JAVA代码文件。
优选地,所述调用所述插件对所述XML节点中的所有属性进行调整,得到JAVA代码文件,包括:
调用所述插件将所述XML节点中的所有属性与预先构建的支持属性集合进行比较,得到比较结果;
根据所述比较结果将所述XML节点中的所有属性区分为JAVA代码文件支持的支持属性和JAVA代码文件不支持的不支持属性;
对所述XML节点中的不支持属性进行调整,得到JAVA代码文件。
优选地,所述对所述XML节点中的不支持属性进行调整,得到JAVA代码文件,包括:
在代码转换时解析不支持属性的属性值;
将不支持属性的属性值调整为JAVA代码文件支持的支持属性的属性值,得到JAVA代码文件。
进一步地,所述根据所述转换需求调用预先配置好的插件之前,还包括:
加载系统中的所有代码文件和JAR包文件;
从所述所有代码文件和JAR包文件中筛选出属于所述系统自身项目的XML代码文件。
进一步地,所述将所述JAVA代码文件复制粘贴至目标工程之后,还包括:
根据转换后的所述JAVA代码文件确定加载布局方法;
根据所述加载布局方法对复制粘贴至目标工程的所述JAVA代码文件进行界面布局。
进一步地,所述将所述JAVA代码文件复制粘贴至目标工程之后,还包括:
对复制粘贴至目标工程的所述JAVA代码文件进行检测,得到检测结果;
根据所述检测结果判定所述JAVA代码文件满足预设转换要求后,输出所述项目中的XML代码文件的转换成功信息。
本申请还提供一种项目代码转换装置,所述装置包括:
获取模块,用于获取待转换的项目;
确定模块,用于确定所述项目的转换需求;
转换模块,用于根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件;
复制粘贴模块,用于响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
本申请所提供的一种项目代码转换方法、装置、设备及存储介质,通过获取待转换的项目,确定所述项目的转换需求,根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件,响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程,从而通过预先构建的插件将项目中的XML代码文件自动转换为XML代码文件,无需借助人工,提高了项目代码的转换效率。
附图说明
图1为本申请一实施例的项目代码转换方法的流程示意图;
图2为本申请一实施例的项目代码转换装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
随着互联网技术的发展,越来越多的项目逐渐由以前已经开发的旧项目转换为Spring Boot框架或者SpringCloud框架的新项目,但是旧项目里面往往会定义一个SpringBean对象,则项目中会含有大量XML形式的配置,但需要将这些XML形式的配置转换为符合新项目格式的Java形式。
目前都是由开发人员按照XML形式的代码文件一个个翻译成为Java形式的代码文件,而且在转换的时候还需要注意字段命名等事项,因此项目转换的效率较低,而且容易转换出错。
其中,Spring Boot是一种项目开发框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,即Spring Boot默认配置了很多框架的使用方式,整合了大量的框架。在该框架中,开发人员可以进行软件项目的开发,例如,在该框架中输入项目代码,该前端开发工具可以对该项目代码进行编译,主要包括对框架语言、CSS、图片的编译,同时,还可借助前端开发工具对项目代码的质量和该项目代码中的错误进行提示。该前端开发工具可以对该项目代码进行实时编译,并将编译后的项目代码发送到客户端即浏览器,使得该浏览器可以实时显示编译后的项目代码所对应的页面,也就是说,当开发人员对项目代码进行修改后,该前端开发工具即可对修改后的项目代码进行编译,浏览器可实时显示修改后的项目代码对应的页面,使得开发人员可以实时看到项目代码的显示效果,从而根据显示效果进一步完善该项目代码。
Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的微服务,即将一个单体项目,拆分为多个微服务,每个微服务可以独立技术选型、独立开发、独立部署独立运维等等,并且多个微服务可以相互协调和相互配合。
Spring Cloud是一系列框架的有序集合,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
Spring Bean对象是被实例的、组装的及被Spring容器管理的对象。
因此,本申请提出的一种项目代码转换方法,执行主体为终端设备,该项目代码转换方法用于解决目前人工转换的方式,需要耗费大量人力,且开发效率较低的技术问题。参考图1,其中一个实施例中,本申请提供一种项目代码转换方法,所述方法包括:
S11、获取待转换的项目;
S12、确定所述项目的转换需求;
S13、根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件;
S14、响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程。
如上述步骤S11所述,本步骤的终端设备可从项目库中获取需要转换的项目,并从远程服务器下载并安装前端开发工具,该前端开发工具具体可以是NodeJs环境下的命令行工具。
如上述步骤S12所述,开发人员可以在该前端开发工具中输入转换需求,转换需求包括所需转换的项目、项目所需转换后的代码形式等等。其中,该前端开发工具可提示开发人员输入待转换项目的项目名称、项目描述、提示开发人员选择项目所用框架、以及与该项目所用框架对应的转换插件、以及提示开发人员确定目标服务器,该目标服务器可以是该软件项目最终的发布平台。
在一实施例中,在获取到项目后,还可对项目进行初始化处理,当该前端开发工具接收到初始化指令时,该前端开发工具依次获取项目名称、项目描述、项目所用框架、框架对应的插件、以及确定项目发布的平台,其中,项目名称、项目描述可以由开发人员定义,项目使用的框架可以由开发人员选择,框架对应的插件是开发人员根据其选择的项目所用框架确定的。进一步,该前端开发工具下载初始化插件,将该初始化插件解压为临时文件,该临时文件中包括默认模板文件和配置信息,该前端开发工具查找该初始化插件中的默认模板文件,其中,该默认模板文件可用于初始化项目目录。进一步,该前端开发工具还可以将该初始化插件中的默认模板文件替换为新的模板文件,以及根据框架和插件,安装框架需要的第三方文件,该第三方文件需下载到本地项目,从而完成项目的初始化过程。
如上述步骤S13所述,终端设备根据用户输入的所述转换需求,从远程服务器下载与所述项目所用框架且与转换需求对应的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件。因此对于开发人员来说,开发人员只需要在系统中引用转换插件,就可以自动转化得到JAVA代码文件。
其中,Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++力难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
XML(Extensible Markup Language,可扩展标记语言)是标准通用标记语言的子集,用于标记电子文件使其具有结构性的标记语言。
如上述步骤S14所述,开发人员只需要将得到的JAVA代码文件复制粘贴到项目的工程里面,并经过检测无误后即可完成项目的代码转换任务,操作简单,且效率较高。
本申请所提供的一种项目代码转换方法,通过获取待转换的项目,确定所述项目的转换需求,根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件,响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程,从而通过预先构建的插件将项目中的XML代码文件自动转换为XML代码文件,无需借助人工,提高了项目代码的转换效率。
在一实施例中,所述根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件,可具体包括:
解析所述XML代码文件,得到XML解析文件;
识别所述XML解析文件中带BEAN标识的XML节点;
确定所述XML节点中的所有属性,调用所述插件对所述XML节点中的所有属性进行调整,得到JAVA代码文件。
本实施例提取项目中的XML代码文件,对XML代码文件进行解析,得到XML解析文件,然后识别XML解析文件中带BEAN标识的XML节点,确定所述XML节点中的所有属性,调用所述插件对所述XML节点中的所有属性进行调整,得到JAVA代码文件。
例如,项目中Schema元素的Xmlns属性有两种使用情况:一种是表示默认名称空间,属性名是Xmlns,默认名称空间在Schema元素中最多出现1次;一种是带有名称空间前缀Xmlns属性,属性名以“Xmlns:”开头,“:”后是名称空间前缀,带有名称空间前缀的Xmlns属性在Schema元素中可以出现多次。因此在Schema类中定义了一个Xmlns变量,数据类型为String,初始值为Null,用于存储默认名称空间;一个NameSpace变量,数据类型为HashMap<String,String>,初始值为null,<key,value>存储带有名称空间前缀的xmlns属性的<名称空间,名称空间前缀>,调用所述插件对XML节点中的Xmlns属性进行调整,使其符合JAVA代码文件的属性。
在一实施例中,所述调用所述插件对所述XML节点中的所有属性进行调整,得到JAVA代码文件,可具体包括:
调用所述插件将所述XML节点中的所有属性与预先构建的支持属性集合进行比较,得到比较结果;
根据所述比较结果将所述XML节点中的所有属性区分为JAVA代码文件支持的支持属性和JAVA代码文件不支持的不支持属性;
对所述XML节点中的不支持属性进行调整,得到JAVA代码文件。
由于以下的一些原因在XML代码文件中可能会存在不支持属性:例如,一开始某个XML代码文件使用LinearLayout并且定义了一个Orientation属性,后来因为需求改变等原因,需要把LinearLayout改变为RelativeLayout,这个时候很容易忘记将Orientation属性删除,那么残留下来的Orientation属性对于JAVA代码文件来说就是一个不支持的属性。
因此,本实施例可调用插件将XML节点中的所有属性与预先构建的支持属性集合进行比较,得到比较结果,根据所述比较结果将所述XML节点中的所有属性区分为JAVA代码文件支持的支持属性和JAVA代码文件不支持的不支持属性,对XML节点中的不支持属性进行调整,得到JAVA代码文件。
在一实施例中,所述对所述XML节点中的不支持属性进行调整,得到JAVA代码文件,可具体包括:
在代码转换时解析不支持属性的属性值;
将不支持属性的属性值调整为JAVA代码文件支持的支持属性的属性值,得到JAVA代码文件。
本实施例在解析不支持属性的属性值时,当属性值是字面量时,可直接将字面量作为属性值,当属性值是对资源的引用时,可通过分析被引用资源对应的资源值来确定属性值。在本实施例中,在通过分析被引用资源对应的资源值来确定属性值时,当资源值只有一份定义时,可将资源值作为属性值;否则当资源值有多份定义时,可通过运行android.content.res.Resources来获取属性值。这里,字面量是用于表达源代码中一个固定值的表示法,字面量固定不可变且值已知。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串。例如,“1”、“2”等是整数字面量,“abc”是字符串字面量,“真(true)”、“假(false)”是布尔(bool)值字面量。这里,android.content.res.Resources是Android应用中的资源文件夹。在通过分析被引用资源对应的资源值来确定不支持属性的属性值时,当资源值只有一份定义时,将资源值作为不支持属性的属性值;当资源值有多份定义时,通过运行android.content.res.Resources来获取不支持属性的属性值。具体来说,这里“一份”和“多份”的意思为:Android支持为同一个资源名在不同的配置下定义不同的值,例如,一个按钮上显示的文案butten_text:我们可以只定义一个值“点击”,因为只有一个值(即,一份定义),编译时就可以确定;也可以根据系统语言配置定义多个值,中文“点击”、英文“click”等(即,多份定义),此时就需要运行时获取资源值。这里,可以通过android.content.res.Resources中的方法在运行时获取资源值。
最后将不支持属性的属性值调整为JAVA代码文件支持的支持属性的属性值,得到JAVA代码文件。
在一实施例中,所述根据所述转换需求调用预先配置好的插件之前,还可包括:
加载系统中的所有代码文件和JAR包文件;
从所述所有代码文件和JAR包文件中筛选出属于所述系统自身项目的XML代码文件。
本实施例加载系统中的所有代码文件和JAR包文件,从所述所有代码文件和JAR包文件中筛选出属于系统自身项目的XML代码文件,将项目中的XML代码文件转换为JAVA代码文件。
在一实施例中,所述将所述JAVA代码文件复制粘贴至目标工程之后,还可包括:
根据转换后的所述JAVA代码文件确定加载布局方法;
根据所述加载布局方法对复制粘贴至目标工程的所述JAVA代码文件进行界面布局。
本实施例根据转换后的JAVA代码文件确定加载布局方法,根据加载布局方法对复制粘贴至目标工程的JAVA代码文件进行界面布局,因此不需要开发人员手动更改加载布局的方法,可以全自动实现,自动判断是从生成的java代码文件中加载布局,还是通过Android的inflate方法从Xml资源来加载,不需要开发人员手动更改调用。
在一实施例中,所述将所述JAVA代码文件复制粘贴至目标工程之后,还可包括:
对复制粘贴至目标工程的所述JAVA代码文件进行检测,得到检测结果;
根据所述检测结果判定所述JAVA代码文件满足预设转换要求后,输出所述项目中的XML代码文件的转换成功信息。
本实施例可对复制粘贴至目标工程的JAVA代码文件进行检测,检测转换后的JAVA代码文件是否符合要求,并生成相应的检测结果,根据所述检测结果判断JAVA代码文件是否满足预设转换要求,若根据所述检测结果判定所述JAVA代码文件满足预设转换要求后,输出项目中的XML代码文件的转换成功信息。若根据所述检测结果判定所述JAVA代码文件不满足预设转换要求,检测JAVA代码文件不满足预设转换要求的错误信息,根据该错误信息对JAVA代码文件进行调整,得到符合预设转换要求的代码文件,将所述JAVA代码文件复制粘贴至目标工程。其中,该预设转换要求可自定义设置,在此不做具体限定。
随着互联网技术的发展,越来越多的项目逐渐由以前已经开发的旧项目转换为Spring Boot框架或者SpringCloud框架的新项目,但是旧项目里面往往会定义一个SpringBean对象,则项目中会含有大量XML形式的配置,但需要将这些XML形式的配置转换为符合新项目格式的Java形式。
目前都是由开发人员按照XML形式的代码文件一个个翻译成为Java形式的代码文件,而且在转换的时候还需要注意字段命名等事项,因此项目转换的效率较低,而且容易转换出错。
其中,Spring Boot是一种项目开发框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,即Spring Boot默认配置了很多框架的使用方式,整合了大量的框架。在该框架中,开发人员可以进行软件项目的开发,例如,在该框架中输入项目代码,该前端开发工具可以对该项目代码进行编译,主要包括对框架语言、CSS、图片的编译,同时,还可借助前端开发工具对项目代码的质量和该项目代码中的错误进行提示。该前端开发工具可以对该项目代码进行实时编译,并将编译后的项目代码发送到客户端即浏览器,使得该浏览器可以实时显示编译后的项目代码所对应的页面,也就是说,当开发人员对项目代码进行修改后,该前端开发工具即可对修改后的项目代码进行编译,浏览器可实时显示修改后的项目代码对应的页面,使得开发人员可以实时看到项目代码的显示效果,从而根据显示效果进一步完善该项目代码。
Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的微服务,即将一个单体项目,拆分为多个微服务,每个微服务可以独立技术选型、独立开发、独立部署独立运维等等,并且多个微服务可以相互协调和相互配合。
Spring Cloud是一系列框架的有序集合,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
Spring Bean对象是被实例的、组装的及被Spring容器管理的对象。
因此,本申请提出的一种项目代码转换装置,用于解决目前人工转换的方式,需要耗费大量人力,且开发效率较低的技术问题。参照图2,本申请实施例中还提供一种项目代码转换装置,所述装置包括:
获取模块11,用于获取待转换的项目;
确定模块12,用于确定所述项目的转换需求;
转换模块13,用于根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件;
复制粘贴模块14,用于响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程。
本实施例的终端设备可从项目库中获取需要转换的项目,并从远程服务器下载并安装前端开发工具,该前端开发工具具体可以是NodeJs环境下的命令行工具。
开发人员可以在该前端开发工具中输入转换需求,转换需求包括所需转换的项目、项目所需转换后的代码形式等等。其中,该前端开发工具可提示开发人员输入待转换项目的项目名称、项目描述、提示开发人员选择项目所用框架、以及与该项目所用框架对应的转换插件、以及提示开发人员确定目标服务器,该目标服务器可以是该软件项目最终的发布平台。
在一实施例中,在获取到项目后,还可对项目进行初始化处理,当该前端开发工具接收到初始化指令时,该前端开发工具依次获取项目名称、项目描述、项目所用框架、框架对应的插件、以及确定项目发布的平台,其中,项目名称、项目描述可以由开发人员定义,项目使用的框架可以由开发人员选择,框架对应的插件是开发人员根据其选择的项目所用框架确定的。进一步,该前端开发工具下载初始化插件,将该初始化插件解压为临时文件,该临时文件中包括默认模板文件和配置信息,该前端开发工具查找该初始化插件中的默认模板文件,其中,该默认模板文件可用于初始化项目目录。进一步,该前端开发工具还可以将该初始化插件中的默认模板文件替换为新的模板文件,以及根据框架和插件,安装框架需要的第三方文件,该第三方文件需下载到本地项目,从而完成项目的初始化过程。
终端设备根据用户输入的所述转换需求,从远程服务器下载与所述项目所用框架且与转换需求对应的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件。因此对于开发人员来说,开发人员只需要在系统中引用转换插件,就可以自动转化得到JAVA代码文件。
其中,Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++力难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
XML(Extensible Markup Language,可扩展标记语言)是标准通用标记语言的子集,用于标记电子文件使其具有结构性的标记语言。
开发人员只需要将得到的JAVA代码文件复制粘贴到项目的工程里面,并经过检测无误后即可完成项目的代码转换任务,操作简单,且效率较高。
本申请所提供的一种项目代码转换装置,可通过获取待转换的项目,确定所述项目的转换需求,根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件,响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程,从而通过预先构建的插件将项目中的XML代码文件自动转换为XML代码文件,无需借助人工,提高了项目代码的转换效率。
如上所述,可以理解地,本申请中提出的所述项目代码转换装置的各组成部分可以实现如上所述项目代码转换方法任一项的功能,具体结构不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作系统、计算机程序和数据库。该内存器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储所述项目代码转换方法的相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种项目代码转换方法。
上述处理器执行上述的项目代码转换方法,所述方法包括:
获取待转换的项目;
确定所述项目的转换需求;
根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件;
响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种项目代码转换方法,所述方法包括:
获取待转换的项目;
确定所述项目的转换需求;
根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件;
响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本申请的最大有益效果在于:
本申请所提供的一种项目代码转换方法、装置、设备及存储介质,通过获取待转换的项目,确定所述项目的转换需求,根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件,响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程,从而通过预先构建的插件将项目中的XML代码文件自动转换为XML代码文件,无需借助人工,提高了项目代码的转换效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种项目代码转换方法,其特征在于,包括:
获取待转换的项目;
确定所述项目的转换需求;
根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件;
响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程。
2.根据权利要求1所述的方法,其特征在于,所述根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件,包括:
解析所述XML代码文件,得到XML解析文件;
识别所述XML解析文件中带BEAN标识的XML节点;
确定所述XML节点中的所有属性,调用所述插件对所述XML节点中的所有属性进行调整,得到JAVA代码文件。
3.根据权利要求2所述的方法,其特征在于,所述调用所述插件对所述XML节点中的所有属性进行调整,得到JAVA代码文件,包括:
调用所述插件将所述XML节点中的所有属性与预先构建的支持属性集合进行比较,得到比较结果;
根据所述比较结果将所述XML节点中的所有属性区分为JAVA代码文件支持的支持属性和JAVA代码文件不支持的不支持属性;
对所述XML节点中的不支持属性进行调整,得到JAVA代码文件。
4.根据权利要求3所述的方法,其特征在于,所述对所述XML节点中的不支持属性进行调整,得到JAVA代码文件,包括:
在代码转换时解析不支持属性的属性值;
将不支持属性的属性值调整为JAVA代码文件支持的支持属性的属性值,得到JAVA代码文件。
5.根据权利要求1所述的方法,其特征在于,所述根据所述转换需求调用预先配置好的插件之前,还包括:
加载系统中的所有代码文件和JAR包文件;
从所述所有代码文件和JAR包文件中筛选出属于所述系统自身项目的XML代码文件。
6.根据权利要求1所述的方法,其特征在于,所述将所述JAVA代码文件复制粘贴至目标工程之后,还包括:
根据转换后的所述JAVA代码文件确定加载布局方法;
根据所述加载布局方法对复制粘贴至目标工程的所述JAVA代码文件进行界面布局。
7.根据权利要求1所述的方法,其特征在于,所述将所述JAVA代码文件复制粘贴至目标工程之后,还包括:
对复制粘贴至目标工程的所述JAVA代码文件进行检测,得到检测结果;
根据所述检测结果判定所述JAVA代码文件满足预设转换要求后,输出所述项目中的XML代码文件的转换成功信息。
8.一种项目代码转换装置,其特征在于,包括:
获取模块,用于获取待转换的项目;
确定模块,用于确定所述项目的转换需求;
转换模块,用于根据所述转换需求调用预先配置好的插件,根据所述插件对所述项目中的XML代码文件进行转换,得到JAVA代码文件;
复制粘贴模块,用于响应于用户对所述JAVA代码文件的复制粘贴指令,将所述JAVA代码文件复制粘贴至目标工程。
9.一种计算机设备,其特征在于,包括:
处理器;
存储器;
其中,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的项目代码转换方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-7任一项所述的项目代码转换方法。
CN202211083700.2A 2022-09-06 2022-09-06 项目代码转换方法、装置、设备及存储介质 Pending CN115437643A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211083700.2A CN115437643A (zh) 2022-09-06 2022-09-06 项目代码转换方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211083700.2A CN115437643A (zh) 2022-09-06 2022-09-06 项目代码转换方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115437643A true CN115437643A (zh) 2022-12-06

Family

ID=84246528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211083700.2A Pending CN115437643A (zh) 2022-09-06 2022-09-06 项目代码转换方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115437643A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116009959A (zh) * 2023-01-17 2023-04-25 广州创盒信息科技有限公司 Flash项目的移植方法、装置、系统及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116009959A (zh) * 2023-01-17 2023-04-25 广州创盒信息科技有限公司 Flash项目的移植方法、装置、系统及存储介质
CN116009959B (zh) * 2023-01-17 2024-02-27 广州创盒信息科技有限公司 Flash项目的移植方法、装置、系统及存储介质

Similar Documents

Publication Publication Date Title
CN105657191B (zh) 一种基于Android系统的应用增量升级方法及系统
US7263699B2 (en) Preparation of a software configuration using an XML type programming language
US7549148B2 (en) Self-describing software image update components
US7574692B2 (en) Method for building component-software for execution in a standards-compliant programming environment
CN111399853B (zh) 机器学习模型与自定义算子的模板化部署方法
US7484223B2 (en) System and method for building a run-time image from components of a software program
US8555272B2 (en) System and method for implementing data-compatibility-based version scheme
US7133874B2 (en) Prototyping model for components of a software program
CN111679965A (zh) 自动化测试方法、装置、计算机设备和存储介质
US8448163B2 (en) Deploying J2EE web applications in an OSGI environment
US7428559B2 (en) Versioning model for software program development
US20030182625A1 (en) Language and object model for describing MIDlets
US20040128584A1 (en) Method and system for determining computer software test coverage
US20030182626A1 (en) On-demand creation of MIDlets
US20040088397A1 (en) System and method for management of software applications
CN100421072C (zh) 实现软件升级的方法
JP2000353078A (ja) Java(登録商標)環境の管理可能性及び有用性を改善するシステム、方法及び記憶媒体
CN111045683A (zh) 小程序代码编译方法、装置、设备及介质
CN110888652A (zh) 基于jenkins插件的多版本构建方法及终端
CN115437643A (zh) 项目代码转换方法、装置、设备及存储介质
CN110928780B (zh) 一种代码质量控制方法、装置、计算机设备及存储介质
WO2011042228A1 (en) Method and system to handle java class versioning
CN111683005B (zh) 一种物联网智能网关设备及其构建方法
CN115794214B (zh) 应用模块元数据管理方法、设备、存储介质及装置
CN116414774A (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