CN113360143A - 远程软件开发方法、装置、存储介质及处理器 - Google Patents

远程软件开发方法、装置、存储介质及处理器 Download PDF

Info

Publication number
CN113360143A
CN113360143A CN202110776080.XA CN202110776080A CN113360143A CN 113360143 A CN113360143 A CN 113360143A CN 202110776080 A CN202110776080 A CN 202110776080A CN 113360143 A CN113360143 A CN 113360143A
Authority
CN
China
Prior art keywords
local
developed
software
directory
project
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
CN202110776080.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.)
Postal Savings Bank of China Ltd
Original Assignee
Postal Savings Bank of China 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 Postal Savings Bank of China Ltd filed Critical Postal Savings Bank of China Ltd
Priority to CN202110776080.XA priority Critical patent/CN113360143A/zh
Publication of CN113360143A publication Critical patent/CN113360143A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

本发明公开了一种远程软件开发方法、装置、存储介质及处理器。其中,该方法包括:获取位于远程服务器上的待开发软件项目的属性信息,其中,待开发软件项目的属性信息用于表示待开发软件项目的类型和地址信息;根据属性信息配置本地开发平台的项目创建插件;基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系;基于映射关系,通过本地开发平台的远程编译插件对待开发软件项目的源代码信息进行编译。本发明解决了现有技术中难以实现远程对Linux系统的软件代码进行开发的技术问题。

Description

远程软件开发方法、装置、存储介质及处理器
技术领域
本发明涉及软件技术领域,具体而言,涉及一种远程软件开发方法、装置、存储介质及处理器。
背景技术
相关技术中,对Linux系统的C/ProcC软件代码进行远程开发的方法包括:1.通过远程登录工具登录到远程的Linux服务器,直接在远程的命令行环境中使用vim或者emacs代码编辑工具进行代码开发,但是这种方法需要做大量的配置工作,开发人员需要记忆较多快捷键命令,导致开发难度较大。2.使用FTP工具将软件代码从远程Linux服务器下载到本地的windows环境中,在本地使用windows文本编辑工具(例如,nodepad++文本编辑工具)进行代码编写,编写完成后再将代码文件上传到远程服务器上对应的编译目录,完成编译。由于FTP工具和本地windows文本编辑工具不具备编辑代码的辅助功能,使得在本地windows环境中无法实现代码的实时编译,导致开发过程比较繁琐。3.将开发平台(例如,Eclipse开发平台)运行在远程的Linux服务器上,基于XWindows协议的远程软件,实现远程开发Linux C/ProcC软件的功能,但是开发平台在Linux服务器的稳定性较差,在虚机环境下长时间运行会出现明显卡顿;并且这种方法对网络环境要求很高,一般只能在局域网中使用,导致在复杂的企业级开发中难度较大。
针对上述解决了现有技术中难以实现远程对Linux系统的软件代码进行开发的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种远程软件开发方法、装置、存储介质及处理器,以至少解决现有技术中难以实现远程对Linux系统的软件代码进行开发的技术问题。
根据本发明实施例的一个方面,提供了一种远程软件开发方法,包括:获取位于远程服务器上的待开发软件项目的属性信息,其中,待开发软件项目的属性信息用于表示待开发软件项目的类型和地址信息;根据属性信息配置本地开发平台的项目创建插件;基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系;基于映射关系,通过本地开发平台的远程编译插件对待开发软件项目的源代码信息进行编译。
进一步地,上述属性信息包括远程服务器的登录信息,基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系,包括:基于远程服务器的登录信息登录远程服务器;通过项目创建插件创建待开发软件项目的本地映射目录,其中,本地映射目录用于将待开发软件项目中的目录和文件一一对应地加载到本地开发平台。
进一步地,上述属性信息至少包括:待开发软件项目的源码目录的路径信息和系统头文件查找路径,通过项目创建插件创建待开发软件项目的本地映射目录,包括:根据待开发软件项目的源码目录的路径信息和系统头文件查找路径在本地开发平台创建对应的第一本地映射目录,其中,第一本地映射目录包含源码目录和系统头文件,源码目录用于存储源代码信息。
进一步地,基于映射关系,通过远程编译插件对待开发软件项目进行编译,包括:在本地开发平台上根据源码目录创建编译文件;基于映射关系将将编译文件同步至远程服务器;根据编译操作,远程编译插件向远程服务器发送编译指令,其中,编译指令包含待编译的编译文件的标识信息;根据编译指令,对远程服务器上的待编译的编译文件进行编译。
进一步地,第一本地映射目录具有多个源码目录,在本地开发平台上根据源码目录创建编译文件,包括:对每个源码目录单独创建对应的编译文件。
进一步地,在基于映射关系,通过远程编译插件对待开发软件项目进行编译之前,上述方法还包括:在本地开发平台添加辅助编辑插件;通过辅助编辑插件构建代码符号链接,其中,代码符号链接用于对源代码信息进行辅助编辑。
进一步地,待开发软件项目的属性信息至少包括:待开发软件项目的包含目录的路径信息,基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系,包括:根据包含目录的路径信息在本地开发平台创建与包含目录对应的第二本地映射目录;其中,包含目录用于存储自定义包含文件,自定义包含文件用于构建代码符号链接。
进一步地,基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系,还包括:获取项目创建插件中预设的事件响应机制;根据属性信息和事件响应机制将本地映射目录同步至远程服务器,其中,事件响应机制用于表示本地开发平台的本地映射目录与远程服务器上的对应目录的同步关系。
进一步地,本地映射目录包含本地文件,根据属性信息和事件响应机制将本地映射目录同步至远程服务器,包括如下一种或者任意几种:在本地开发平台删除本地文件的情况下,远程服务器删除对应的文件;以及在本地开发平台增加本地文件的情况下,远程服务器增加对应的文件;以及在本地开发平台修改并保存本地文件的情况下,将文件的修改内容同步至远程服务器;以及在本地开发平台增加本地映射目录的情况下,根据创建操作在远程服务器创建对应的目录;以及在本地开发平台删除本地映射目录的情况下,远程服务器不执行删除事件。
根据本发明实施例的另一方面,还提供了一种远程开发装置,包括:获取模块,用于获取位于远程服务器上的待开发软件项目的属性信息,其中,待开发软件项目的属性信息用于表示待开发软件项目的类型和地址信息;配置模块,用于根据属性信息配置本地开发平台的项目创建插件;建立模块,基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系用于通过项目创建插件建立待开发软件项目在本地开发平台的映射关系;编译模块,用于基于映射关系,通过本地开发平台的远程编译插件对待开发软件项目进行编译。
根据本发明实施例的另一方面,还提供了一种存储介质,包括:存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项远程软件开发方法。
根据本发明实施例的另一方面,还提供了一种处理器,包括:处理器用于运行程序,其中,程序运行时执行上述任意一项远程软件开发方法。
在本发明实施例中,通过获取位于远程服务器上的待开发软件项目的属性信息,根据属性信息配置本地开发平台的项目创建插件,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系,基于映射关系,通过本地开发平台的远程编译插件对待开发软件项目的源代码信息进行编译,实现了可以在本地对源代码进行编写和修改,相比在远程服务器直接进行源代码编写的方案,一方面减少了配置工作,降低了开发难度,另一方面提高了开发平台运行的稳定性。并且源代码编译时不需要将修改后的源代码整体上传至远程服务器,根据映射关系仅同步上传修改的内容,可以实现实时编译,解决了现有技术中难以实现远程对Linux系统的软件代码进行开发的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种远程软件开发方法的流程图;
图2是根据本发明实施例的一种可选的项目创建插件的操作界面的示意图;
图3是根据本发明实施例的一种可选的远程软件开发方法的示意图;
图4是根据本发明实施例的一种远程软件开发装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种远程软件开发方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的远程软件开发方法,如图1所示,该方法包括如下步骤:
步骤S102,获取位于远程服务器上的待开发软件项目的属性信息,其中,待开发软件项目的属性信息用于表示待开发软件项目的类型和地址信息。
上述待开发软件项目的源代码以及相关文件存储于远程服务器上,用户需要在本地环境下远程登录到远程服务器上以实现对待开发软件项目的开发。
待开发软件项目的类型可以包括软件编程语言类型(例如,C语言或者C++语言),是否为远程开发项目等;待开发软件项目的地址信息可以包括待开发软件项目所在的远程服务器的地址(例如,IP地址或者MAC地址)、待开发软件项目在远程服务器上的地址以及待开发软件项目中源码目标以及各文件所在的地址信息。
步骤S104,根据属性信息配置本地开发平台的项目创建插件。
本地开发平台为位于用户端的本地操作环境中的软件开发平台,在一种可选的实施例中,本地开发平台可以为基于Java的Eclipse开发平台,用于可以在本地的Eclipse开发平台上实现软件开发。需要说明的是,本地操作环境和远程服务器中的操作环境可以为不同的操作环境,例如,远程服务器可以为Linux环境,本地操作环境可以为Windows环境,对于Eclipse开发平台,在Windows环境下运行更稳定,在本地使用Windows环境可以提高Eclipse开发平台的稳定性。
项目创建插件为运行于本地开发平台中用于辅助软件开发的插件,项目创建插件可以具有与用户交互的操作界面,用户通过项目创建插件的操作界面,根据待开发软件项目的属性信息进行相应的配置,可以使得本地开发平台获得与待开发软件项目相关的软件开发信息。
在一种可选的实施例中,图2为一种可选的项目创建插件的操作界面的示意图,如图2所示,待开发软件项目为位于远程服务器上的C语言类项目,项目创建插件的操作界面中包含远程主机地址(即远程服务器的地址)、编码类型、远程代码目录以及登录协议等属性信息的输入框,用于可以根据待开发软件项目的属性信息,在项目创建插件的操作界面中输入相应的内容,完成对项目创建插件的配置。
步骤S106,基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系。
上述映射关系包括远程服务器上的待开发软件项目在本地开发平台上建立一一对应的目录或者文件,用户可以在本地开平台上获取到待开发软件项目中的全部信息。例如,基于上述映射关系,用户在本地开发平台上可以获取到待开发软件项目中包含源代码信息的源码目录和系统头文件,远程服务器中的源码目录的个数、位置和内容,与本地开发平台上的源码目录一一对应,用于可以在本地开发平台中查看以及修改待开发软件项目中的内容。
上述映射关系还包含用户在本地开发平台对待开发软件项目中的目标或者文件所作的修改将同步至远程服务器中对应的位置中,例如,用户在本地开发平台对待开发软件项目新增了一个文件,该文件将被同步至远程服务器中对应的位置,使得远程服务器的待开发软件项目与本地开发平台中的目录文件保持一一对应的关系。用户的操作仅在本地开发平台进行,不会占用远程服务器中的额外资源,可以支持多个用户共享远程服务器中的资源同时进行软件开发。
步骤S108,基于映射关系,通过本地开发平台的远程编译插件对待开发软件项目的源代码信息进行编译。
远程编译插件为运行于本地开发平台用于对远程服务器上的源代码进行编译的插件。
基于上述映射关系,用户在本地开发平台对待开发软件项目的源代码信息所进行的修改会同步至远程服务器中的对应位置,使得远程服务器中源代码信息与本地开发平台中保持一致,用户通过远程编译插件可对远程服务器中的源代码进行编译。
在一种可选的实施例中,图3是根据本发明实施例的一种可选的远程软件开发方法的示意图,如图3所示,远程服务器为Linux环境,待开发软件项目为位于远程Linux环境中的C/ProcC软件,本地开发平台为位于本地Windows环境中的Eclipse开发平台,Eclipse开发平台具有位于本地工作空间的开发界面。用户可以在Eclipse开发平台上增加项目创建插件和远程编译插件以实现对远程Linux环境中的C/ProcC软件的开发。具体的,可以在如图2所示的项目创建插件的配置界面中配置C/ProcC软件的软件项目名称、登录协议、FTP协议、远程服务器的地址、编码类型、远程代码目录等信息,完成配置后,项目创建插件建立待开发软件项目在本地开发平台的映射关系,如图3所示,将远程C/ProcC软件中的源码目录一一对应的映射到本地工作空间中,远程源码目录A与本地源码目标A中的文件和目录一一对应,例如,远程源码目录A中包含文件操作、目录操作、编译构建、目录清理等子目录,则本地映射得到的本地源码目标A中包含与远程源码目录A中一一对应的文件操作、目录操作、编译构建、目录清理等子目录。远程其他文件与本地其他文件也一一对应。在建立了上述映射关系后,用户在本地对本地源码目录A进行修改编辑,相应的修改内容根据映射关系同步至远程源码目录A中,使得两者的内容保持一致。用户可调用远程编译插件向远程服务器发送编译指令,远程服务器完成相应的编译任务。
本实施例中,通过获取位于远程服务器上的待开发软件项目的属性信息,根据属性信息配置本地开发平台的项目创建插件,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系,基于映射关系,通过本地开发平台的远程编译插件对待开发软件项目的源代码信息进行编译,实现了可以在本地对源代码进行编写和修改,相比在远程服务器直接进行源代码编写的方案,一方面减少了配置工作,降低了开发难度,另一方面本地可以使用于开发平台兼容的操作系统,提高了开发平台运行的稳定性。并且源代码编译时不需要将修改后的源代码整体上传至远程服务器,根据映射关系仅同步上传修改的内容,可以实现实时编译,解决了现有技术中难以实现远程对Linux系统的软件代码进行开发的技术问题。
作为一种可选的实施例,上述属性信息可以包括远程服务器的登录信息,基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系,包括:
步骤S1061,基于远程服务器的登录信息登录远程服务器。
远程服务器的登录信息可以包括远程服务器的地址信息、用户名和密码,其中,用户名和密码用于远程服务器对本地开发平台进行身份和权限识别。如图2所示的项目创建插件的操作界面的示意图中,用户可以在该操作界面中输入远程主机地址(远程服务器)、用户名和密码,完成配置后,本地开发平台可以登录远程服务器并建立数据交互关系。
在一种可选的实施例中,用户可以在该操作界面中输入远程主机地址(远程服务器)、用户名和密码,完成配置后,项目创建插件可以将远程服务器的登录信息写入待开发软件项目的工程属性文件中,以实现在完成配置后的自动登录,以及在源代码信息的同步以及编译过程中,本地开发平台可以自动登录远程服务器。
步骤S1062,通过项目创建插件创建待开发软件项目的本地映射目录,其中,本地映射目录用于将待开发软件项目中的目录和文件一一对应地加载到本地开发平台。
本地映射目录与远程服务器中的待开发软件项目中所包含的目录和文件一一对应,本地映射目录可以包含多个目录和文件,例如,远程服务器中的待开发软件项目中包含源码目录B,则在本地开发平台创建对应的本地源码目录B作为本地映射目录。
在本地开发平台登录远程服务器并建立数据交互关系后,项目创建插件所建立的本地映射目录将其中包含的目录和文件均一一对应的下载到本地开发平台中,使得本地映射目录包含远程服务器中的待开发软件项目中的全部内容。
作为一种可选的实施例,上述属性信息至少包括:待开发软件项目的源码目录的路径信息和系统头文件查找路径,通过项目创建插件创建待开发软件项目的本地映射目录,包括:根据待开发软件项目的源码目录的路径信息和系统头文件查找路径在本地开发平台创建对应的第一本地映射目录,其中,第一本地映射目录包含源码目录和系统头文件,源码目录用于存储源代码信息。
源码目录和系统头文件为软件编译的必要元素,通过在本地开发平台建立了上述第一本地映射目录,使得用户可以在本地开发平台获得软件开发所必须的源代码信息和头文件。进一步的,用户对源代码信息进行修改后,对应的修改内容根据映射关系同步至远程服务器中的源码目录中,进而实现了在本地对源代码的编写和修改。
在远程服务器中,源码目录在形式和位置上可以是不相关的两个目录,每个源码目录相互独立,具有独立的映射配置和编译配置,在本地开发平台中,将可以将不同的源码目录对应的本地映射目录组织在同一本地软件项目中,以方便用户进行调用和修改。例如,在配置项目创建插件时,可以通过在同一个项目下配置多个源码目录的地址,将不同的源码目录对应的本地映射目录组织在同一本地软件项目中。
作为一种可选的实施例,基于映射关系,通过远程编译插件对待开发软件项目进行编译,包括:在本地开发平台上根据源码目录创建编译文件;基于映射关系将将编译文件同步至远程服务器;根据编译操作,远程编译插件向远程服务器发送编译指令,其中,编译指令包含待编译的编译文件的标识信息;根据编译指令,对远程服务器上的待编译的编译文件进行编译。
上述编译文件为根据需要编译的源代码信息生成的可用于编译的文件,可以使用本地开发平台的已有模板或者定制模块自动生成,也可以由用户根据需求直接编写。在一种可选的实施例中,对每个源码目录单独创建对应的编译文件,根据映射关系,远程服务器上同步所对应的独立的编译文件,用于可以选择任意一个编译文件进行编译,实现了对不同源码目录的灵活编译,提高了开发效率。
编译文件在编写完成后,根据映射关系将自动同步至远程服务器中,使得远程服务器中的文件与本地开发平台中的文件保持一致,而不需要用户进行上传操作。
待编译的编译文件的标识信息可以包括对应的源码目录的名称、地址等。
在一种可选的实施例中,编译操作可以为用户选中需要编译的源码目录,在菜单选项中选中编译源码目录。用户完成编译操作后,远程编译插件调用编译指令,编译指令中包含需要编译的源码目录在远程服务器中的地址,远程服务器根据编译指令对源码目录完成编译,例如,本地开发平台可以为Eclipse开发平台,可以调用make指令,选择远程服务器中与本地编译文件匹配的make文件编译目录,完成编译。
需要说明的是,由于在编译过程中,本地开发平台仅需要向远程服务器发送编译指令,而不需要将全部源代码信息上传至远程服务器,因此编译过程对网络依赖性小,对网络延迟不敏感,降低了在远程服务器上直接进行代码开发的方法对网络资源的依赖性。
作为一种可选的实施例,在基于映射关系,通过远程编译插件对待开发软件项目进行编译之前,方法还包括:在本地开发平台添加辅助编辑插件;通过辅助编辑插件构建代码符号链接,其中,代码符号链接用于对源代码信息进行辅助编辑。
对源代码信息进行辅助编辑包括但不限于符号查找、符号定位、代码补全、类型提示、语法高亮和检查等,通过对源代码辅助编辑,可以检查出代码的编写错误,且可以自动实现修正以及向用户发出提醒,以提高开发效率。
辅助编辑插件运行于本地开发平台,不占用远程服务器的资源,通过辅助编辑插件在本地开发平台对源代码进行的修改实时同步至远程服务器上,保证远程服务器上的版本与本地版本的一致性。
在一种可选的实施例中,本地开发平台为Eclipse开发平台,辅助编辑插件可以为CDT插件或者ProcC代码开发插件。具体的,在项目创建插件在本地开发平台中建立了与远程服务器的待开发软件项目对应的本地映射目录并将源代码信息加载到本地后,CDT插件为本地映射目录中源代码构建代码符号链接,在构建完成后,用户在本地开发平台打开源代码文件,可以看到经辅助编辑后的源代码文件,例如,源代码具有未定义符号的提示,以及错误语法高亮显示等。通过Eclipse开发平台的快捷键操作,还可以实现代码自动提示、定义符号跳转等辅助功能。
需要说明的是,本实施例中远程编译插件、项目创建插件以及辅助编辑插件均存放于本地开发平台,与代码开发过程相关的缓存和临时文件全部存放于本地,仅将修改同步至远程服务器,不会在远程服务器创建任何额外的资源,避免了不同用户在开发同一远程软件工程时,由于开发环境冲突导致的相关问题,可实现多个用户同时开发同一远程软件工程。
作为一种可选的实施例,待开发软件项目的属性信息至少包括:待开发软件项目的包含目录的路径信息,基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系,包括:根据包含目录的路径信息在本地开发平台创建与包含目录对应的第二本地映射目录;其中,包含目录用于存储自定义包含文件,自定义包含文件用于构建代码符号链接。
需要说明的是,由于辅助编辑插件运行在本地开发平台,且包含目录通过映射关系在本地建立了第二本地映射目录,实现了代码符号链接可直接构建在本地,进而实现了用户可以在本地开发平台上对源代码进行辅助编辑,无需复杂的配置和快捷键命令,降低了软件的开发难度。
在一种可选的实施例中,可以通过在项目创建插件的操作界面上,配置包含目录的路径信息和源码目录的路径信息,在完成配置时,将包含目录和源码目录加载到本地开发平台中,进而辅助编辑插件调用包含目录的自定义包含文件,在本地构建代码符号链接,在本地实现对源代码的辅助编辑。本实施例中,将源代码和代码符号链接构建操作相分离,由于源代码构建在远程服务器,而代码符号链接构建在本地开发平台,网络上只需要传输必要的文件创建、同步和编译指令,降低了对网络环境的要求。
作为一种可选的实施例,基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系,还包括:获取项目创建插件中预设的事件响应机制;根据属性信息和事件响应机制将本地映射目录同步至远程服务器,其中,事件响应机制用于表示本地开发平台的本地映射目录与远程服务器上的对应目录的同步关系。
通过定义事件响应机制,实现了将本地开发平台中的目录和文件自动同步到远程服务中,并且针对用户不同的操作,项目创建插件建立了不同的响应机制,一方面实现了实时将用户在本地所进行的文件和代码修改同步至远程服务器,以实现远程实时编译,另一方面,事件响应机制定义远程服务器不执行同步的时间,以避免不同用户在对同一远程软件项目开发时引起的权限冲突的相关问题。
作为一种可选的实施例,本地映射目录包含本地文件,根据属性信息和事件响应机制将本地映射目录同步至远程服务器,包括如下一种或者任意几种:
在本地开发平台删除本地文件的情况下,远程服务器删除对应的文件;以及在本地开发平台增加本地文件的情况下,远程服务器增加对应的文件;以及在本地开发平台修改并保存本地文件的情况下,将文件的修改内容同步至远程服务器;以及在本地开发平台增加本地映射目录的情况下,根据创建操作在远程服务器创建对应的目录;以及在本地开发平台删除本地映射目录的情况下,远程服务器不执行删除事件。
需要说明的是,用户在本地开发平台新增或者删除本地文件时,本地开发平台根据映射关系将新增或者删除的本地文件自动同步至远程服务器中。用户在本地开发平台对本地文件进行修改后,需要通过保存操作来触发执行同步至远程服务器,在用户未进行保存操作的情况下,修改文件将不会自动保存至远程服务器。用户在本地开发平台新增本地映射目录,需要通过在本地开发平台进行创建操作。
上述保存操作、创建操作可以通过项目创建插件实现,例如,在项目创建插件的操作界面上设置文件修改的保存图标,用户通过对保存图标进行操作,实现将文件修改同步至远程服务器。在项目创建插件的操作界面上设置目录新增图标,用户通过对目录新增图标进行操作,才能使新增的本地映射目录同步至远程服务器。
在本地开发平台删除本地映射目录,远程服务器不执行删除事件,实际为用户仅删除了远程服务器上的待开发软件项目在本地的映射副本,而远程服务器的目录并不受影响,实现了在多开发用户共享远程服务器的源码目录的场景下,防止开发人员误删源码目录影响其他开发用户的开发。
实施例2
根据本发明实施例,提供了一种远程软件开发装置的实施例,图4是根据本发明实施例的一种远程软件开发装置的示意图,如图4所示,远程软件开发装置包括:
获取模块41,用于获取位于远程服务器上的待开发软件项目的属性信息,其中,待开发软件项目的属性信息用于表示待开发软件项目的类型和地址信息;配置模块42,用于根据属性信息配置本地开发平台的项目创建插件;建立模块43,用于基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系;编译模块44,用于基于映射关系,通过本地开发平台的远程编译插件对待开发软件项目进行编译。
作为一种可选的实施例,上述属性信息包括远程服务器的登录信息,上述建立模块,包括:登录子模块,用于基于远程服务器的登录信息登录远程服务器;映射子模块,用于通过项目创建插件创建待开发软件项目的本地映射目录,其中,本地映射目录用于将待开发软件项目中的目录和文件一一对应地加载到本地开发平台。
作为一种可选的实施例,上述属性信息至少包括:待开发软件项目的源码目录的路径信息和系统头文件查找路径,上述映射子模块,包括:第一创建子模块,用于根据待开发软件项目的源码目录的路径信息和系统头文件查找路径在本地开发平台创建对应的第一本地映射目录,其中,第一本地映射目录包含源码目录和系统头文件,源码目录用于存储源代码信息。
作为一种可选的实施例,上述编译模块,包括:编译文件创建子模块,用于在本地开发平台上根据源码目录创建编译文件;第一同步子模块,用于基于映射关系将将编译文件同步至远程服务器;发送子模块,用于根据编译操作,远程编译插件向远程服务器发送编译指令,其中,编译指令包含待编译的编译文件的标识信息;编译子模块,用于根据编译指令,对远程服务器上的待编译的编译文件进行编译。
作为一种可选的实施例,第一本地映射目录具有多个源码目录,编译文件创建子模块,包括:独立创建子模块,用于对每个源码目录单独创建对应的编译文件。
作为一种可选的实施例,上述装置还包括:添加模块,用于在本地开发平台添加辅助编辑插件;编辑模块,用于通过辅助编辑插件构建代码符号链接,其中,代码符号链接用于对源代码信息进行辅助编辑。
作为一种可选的实施例,待开发软件项目的属性信息至少包括:待开发软件项目的包含目录的路径信息,上述建立模块,包括:第二创建子模块,用于根据包含目录的路径信息在本地开发平台创建与包含目录对应的第二本地映射目录;其中,包含目录用于存储自定义包含文件,自定义包含文件用于构建代码符号链接。
作为一种可选的实施例,上述建立模块还包括:获取子模块,用于获取项目创建插件中预设的事件响应机制;第二同步子模块,用于根据属性信息和事件响应机制将本地映射目录同步至远程服务器,其中,事件响应机制用于表示本地开发平台的本地映射目录与远程服务器上的对应目录的同步关系。
作为一种可选的实施例,本地映射目录包含本地文件,第二同步子模块包括如下一种或者任意几种:文件删除子模块,用于在本地开发平台删除本地文件的情况下,远程服务器删除对应的文件;以及文件增加子模块,用于在本地开发平台增加本地文件的情况下,远程服务器增加对应的文件;以及文件修改子模块,用于在本地开发平台修改并保存本地文件的情况下,将文件的修改内容同步至远程服务器;以及目录增加子模块,用于在本地开发平台增加本地映射目录的情况下,根据创建操作在远程服务器创建对应的目录;以及目录删除子模块,用于在本地开发平台删除本地映射目录的情况下,远程服务器不执行删除事件。
实施例3
根据本发明实施例的另一方面,还提供了一种存储介质,包括:存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项远程软件开发方法。
存储介质被设置为存储用于执行以下步骤的程序代码:获取位于远程服务器上的待开发软件项目的属性信息,其中,待开发软件项目的属性信息用于表示待开发软件项目的类型和地址信息;根据属性信息配置本地开发平台的项目创建插件;基于属性信息,通过项目创建插件建立待开发软件项目在本地开发平台的映射关系;基于映射关系,通过本地开发平台的远程编译插件对待开发软件项目的源代码信息进行编译。
根据本发明实施例的另一方面,还提供了一种处理器,包括:处理器用于运行程序,其中,程序运行时执行上述任意一项远程软件开发方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种远程软件开发方法,其特征在于,包括:
获取位于远程服务器上的待开发软件项目的属性信息,其中,所述待开发软件项目的属性信息用于表示所述待开发软件项目的类型和地址信息;
根据所述属性信息配置本地开发平台的项目创建插件;
基于所述属性信息,通过所述项目创建插件建立所述待开发软件项目在所述本地开发平台的映射关系;
基于所述映射关系,通过所述本地开发平台的远程编译插件对所述待开发软件项目的源代码信息进行编译。
2.根据权利要求1所述的远程软件开发方法,其特征在于,所述属性信息包括所述远程服务器的登录信息,基于所述属性信息,通过所述项目创建插件建立所述待开发软件项目在所述本地开发平台的映射关系,包括:
基于所述远程服务器的登录信息登录所述远程服务器;
通过所述项目创建插件创建所述待开发软件项目的本地映射目录,其中,所述本地映射目录用于将所述待开发软件项目中的目录和文件一一对应地加载到所述本地开发平台。
3.根据权利要求2所述的远程软件开发方法,其特征在于,所述属性信息至少包括:所述待开发软件项目的源码目录的路径信息和系统头文件查找路径,通过所述项目创建插件创建所述待开发软件项目的本地映射目录,包括:
根据所述待开发软件项目的源码目录的路径信息和系统头文件查找路径在所述本地开发平台创建对应的第一本地映射目录,
其中,所述第一本地映射目录包含所述源码目录和所述系统头文件,所述源码目录用于存储所述源代码信息。
4.根据权利要求3所述的远程软件开发方法,其特征在于,基于所述映射关系,通过所述远程编译插件对所述待开发软件项目进行编译,包括:
在所述本地开发平台上根据所述源码目录创建编译文件;
基于所述映射关系将将所述编译文件同步至所述远程服务器;
根据编译操作,所述远程编译插件向所述远程服务器发送编译指令,其中,所述编译指令包含待编译的编译文件的标识信息;
根据所述编译指令,对远程服务器上的所述待编译的编译文件进行编译。
5.根据权利要求4所述的远程软件开发方法,其特征在于,所述第一本地映射目录具有多个源码目录,在所述本地开发平台上根据所述源码目录创建编译文件,包括:
对每个所述源码目录单独创建对应的所述编译文件。
6.根据权利要求1所述的远程软件开发方法,其特征在于,在基于所述映射关系,通过所述远程编译插件对所述待开发软件项目进行编译之前,所述方法还包括:
在所述本地开发平台添加辅助编辑插件;
通过所述辅助编辑插件构建代码符号链接,其中,所述代码符号链接用于对所述源代码信息进行辅助编辑。
7.根据权利要求6所述的远程软件开发方法,其特征在于,所述待开发软件项目的属性信息至少包括:所述待开发软件项目的包含目录的路径信息,基于所述属性信息,通过所述项目创建插件建立所述待开发软件项目在所述本地开发平台的映射关系,包括:
根据所述包含目录的路径信息在本地开发平台创建与所述包含目录对应的第二本地映射目录;
其中,所述包含目录用于存储自定义包含文件,所述自定义包含文件用于构建所述代码符号链接。
8.根据权利要求2所述的远程软件开发方法,其特征在于,基于所述属性信息,通过所述项目创建插件建立所述待开发软件项目在所述本地开发平台的映射关系,还包括:
获取所述项目创建插件中预设的事件响应机制;
根据所述属性信息和所述事件响应机制将所述本地映射目录同步至所述远程服务器,其中,所述事件响应机制用于表示所述本地开发平台的本地映射目录与所述远程服务器上的对应目录的同步关系。
9.根据权利要求8所述的远程软件开发方法,其特征在于,所述本地映射目录包含本地文件,根据所述属性信息和所述事件响应机制将所述本地映射目录同步至所述远程服务器,包括如下一种或者任意几种:
在所述本地开发平台删除所述本地文件的情况下,所述远程服务器删除对应的文件;
以及在所述本地开发平台增加所述本地文件的情况下,所述远程服务器增加对应的文件;
以及在所述本地开发平台修改并保存所述本地文件的情况下,将所述文件的修改内容同步至所述远程服务器;
以及在所述本地开发平台增加所述本地映射目录的情况下,根据创建操作在所述远程服务器创建对应的目录;
以及在所述本地开发平台删除所述本地映射目录的情况下,所述远程服务器不执行删除事件。
10.一种远程软件开发装置,其特征在于,包括:
获取模块,用于获取位于远程服务器上的待开发软件项目的属性信息,其中,所述待开发软件项目的属性信息用于表示所述待开发软件项目的类型和地址信息;
配置模块,用于根据所述属性信息配置本地开发平台的项目创建插件;
建立模块,基于所述属性信息,通过所述项目创建插件建立所述待开发软件项目在所述本地开发平台的映射关系用于通过所述项目创建插件建立所述待开发软件项目在所述本地开发平台的映射关系;
编译模块,用于基于所述映射关系,通过所述本地开发平台的远程编译插件对所述待开发软件项目进行编译。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至9中任意一项所述远程软件开发方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至9中任意一项所述远程软件开发方法。
CN202110776080.XA 2021-07-08 2021-07-08 远程软件开发方法、装置、存储介质及处理器 Pending CN113360143A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110776080.XA CN113360143A (zh) 2021-07-08 2021-07-08 远程软件开发方法、装置、存储介质及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110776080.XA CN113360143A (zh) 2021-07-08 2021-07-08 远程软件开发方法、装置、存储介质及处理器

Publications (1)

Publication Number Publication Date
CN113360143A true CN113360143A (zh) 2021-09-07

Family

ID=77538774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110776080.XA Pending CN113360143A (zh) 2021-07-08 2021-07-08 远程软件开发方法、装置、存储介质及处理器

Country Status (1)

Country Link
CN (1) CN113360143A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115729598A (zh) * 2022-12-05 2023-03-03 湖北省广播电视局无线台管理中心 一种站点服务器的软件远程更新方法、系统和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122866A (zh) * 2007-09-12 2008-02-13 中兴通讯股份有限公司 集成开发环境中的程序代码编译方法
CN102609354A (zh) * 2012-01-19 2012-07-25 北京神州数码思特奇信息技术股份有限公司 一种基于gnu开源软件的c++程序远程调试方法
CN111258561A (zh) * 2020-01-10 2020-06-09 北京慧博科技有限公司 一种软件自动化编译部署启动监控的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122866A (zh) * 2007-09-12 2008-02-13 中兴通讯股份有限公司 集成开发环境中的程序代码编译方法
CN102609354A (zh) * 2012-01-19 2012-07-25 北京神州数码思特奇信息技术股份有限公司 一种基于gnu开源软件的c++程序远程调试方法
CN111258561A (zh) * 2020-01-10 2020-06-09 北京慧博科技有限公司 一种软件自动化编译部署启动监控的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张一西: "Eclipse 进行Linux远程开发", CSDN博客 *
王爽: "基于Eclipse 平台的嵌入式远程调试软件实现", 微处理器, no. 3, pages 56 - 59 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115729598A (zh) * 2022-12-05 2023-03-03 湖北省广播电视局无线台管理中心 一种站点服务器的软件远程更新方法、系统和存储介质

Similar Documents

Publication Publication Date Title
CN109857667B (zh) 接口自动化测试方法、测试装置、测试设备及存储介质
CN111142903B (zh) 一种基于文件对比的配置文件交互式更新方法及装置
CN104899047B (zh) 网页框架部署方法和系统
KR100596298B1 (ko) 운영체제의 자동 설치 및 구성을 위한 시스템 및 방법
CN112799716B (zh) 一种代码管理方法及系统
CN110147369A (zh) 多重租赁数据库系统中的数据分离和写入重新定向
CN109947767A (zh) 多重租赁数据库系统中的系统共享类型
CN111126781A (zh) Rpa业务流程的创建方法及系统
CN110377523A (zh) 程序调试方法及装置、电子设备和存储介质
US11144292B2 (en) Packaging support system and packaging support method
CN112882700A (zh) iOS应用程序构建方法及装置、电子设备及存储介质
CN109324799A (zh) 一种代码编译方法、计算机装置及计算机可读存储介质
WO2007011942A1 (en) System and method for automatic or semi-automatic software integration
CN101170568B (zh) 一种Telnet命令自动生成及批量执行方法
CN112000334A (zh) 页面开发方法、装置、服务器及存储介质
CN113360143A (zh) 远程软件开发方法、装置、存储介质及处理器
CN102144230B (zh) 基于记录的代码结构
CN114912897A (zh) 工作流执行方法、工作流编排方法及电子设备
CN104317602B (zh) 一种主机代码文件的开发方法及装置
CN111984248A (zh) 页面编辑方法和装置、存储介质及电子装置
CN112256247B (zh) 模块组件的依赖处理方法、装置、计算机设备及存储介质
CN115113850A (zh) 一种跨平台应用的构建、运行方法、服务器、终端和系统
CN110647349A (zh) 一种实现iOS APP持续交付的方法
JP2012133567A (ja) 情報処理装置、情報処理装置の制御方法、プログラム。
CN102279735A (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