一种基于web的远程代码编译方法、系统、装置及介质与流程

文档序号:33344625发布日期:2023-03-04 03:19阅读:28来源:国知局
一种基于web的远程代码编译方法、系统、装置及介质与流程

1.本发明涉及计算机技术领域,更具体的说是涉及一种基于web的远程代码编译方法、系统、装置及介质。


背景技术:

2.bios(basic input and output system)基本输入输出系统,它是一组固化到计算机内主板上一个rom芯片上的程序,它保存着计算机最重要的开机上电自检、硬件初始化程序和系统底层的服务程序,它可从cmos中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
3.由于bios系统功能的多样性,用来生成bios系统的源代码的数量较大,通过bios系统的源代码有几百万行。
4.当前,代码开发人员的编译工作通常在笔记本电脑上进行,而bios系统的源代码的数量较大,笔记本电脑的数据处理速度相对有限,就导致了编译时间过长,编程和代码调试效率不高。因此,在面对百万级别甚至更多的代码时,编译工作的效率受到了编译设备性能的制约。
5.由此可见,如何借助性能强大的设备(比如服务器)进行开发和调试工作,以减少代码的编译时间,提高工作效率是我们亟待解决的问题。


技术实现要素:

6.针对以上问题,本发明的目的在于提供一种基于web的远程代码编译方法、系统、装置及介质,能够利用服务器进行代码编译工作,而且不影响本地的开发和调试工作,有效提高了编译效率,节省了人力时间。
7.本发明为实现上述目的,通过以下技术方案实现:一种基于web的远程代码编译方法,包括:
8.在本地开启git daemon服务,用来共享局域网的本地git仓库;
9.在本地访问远端的编译服务器提供的web服务,并进行登录验证;
10.登录成功后,在编译命令编辑模块中编写代码编译所需的命令;
11.选择手动模式、自动模式或定时模式触发代码编译;
12.实时显示编译过程中产生的编译log和提示信息;
13.当发出编译停止命令时,实时停止代码编译,等待手动模式或自动模式触发新的代码编译;
14.编译成功后,下载生成的bios bin文件和代码编译日志;
15.将包括编译的log,bin文件、用户名、分支名和编译状态的编译相关信息按照特定格式存放在编译服务器的mysql数据库中,通过从mysql数据库中匹配对应的用户信息进行编译成功率的计算;
16.对用户的编译成功率进行统计和排名。
17.进一步,所述进行登录验证,包括:
18.如果是新用户,则通过点击注册按钮,输入邮箱和密码注册,将注册信息存储到服务器上的mysql数据库中;如果是老用户则直接登录,登录输入信息会和数据库中的存储信息匹配,匹配成功则登录成功,匹配失败则登录失败。
19.进一步,所述在编译命令编辑模块中编写代码编译所需的命令,包括:在编译命令编辑模块中通过命令选择git分支,选择对应的编译工具版本,并保存选择结果;如果有多个代码分支需要编译则按需分别为代码分支编辑具体的执行命令。
20.进一步,所述选择手动模式、自动模式或定时模式触发代码编译,包括:通过预设的模式选择下拉按钮选择代码编译模式;
21.如果选择手动模式,根据用户的指令触发代码编译;
22.如果选择自动模式,在有多个代码分支时,服务器会主动去查看代码分支是否有新的提交,只要一有新的提交就会触发代码编译;
23.如果是定时模式,根据预设的时间间隔触发1次代码分支编译。
24.进一步,所述选择手动模式、自动模式或定时模式触发代码编译,还包括:如果所需编译的代码是第一次开始在服务器上编译,则会先从本地git仓库把所要编译分支的代码完全下载到服务器对应的用户目录下;如果代码已经编译过,则只会同步本地git仓库新的变动,代码完成同步后开始编译。
25.进一步,所述实时显示编译过程中产生的编译log和提示信息,包括:
26.对编译过程中产生的编译log进行实时显示;
27.编译完成后,通过将预设的开始编译按钮变为绿色,作为对应代码分支编译成功的提示信息;
28.编译失败后,通过将预设的开始编译按钮变为红色,作为对应代码分支编译失败的提示信息;
29.编译结束后,将编译结果邮件发送给用户。
30.进一步,所述服务器上的mysql数据库中,存储有最近20次的编译相关信息。
31.相应的,本发明还公开了一种基于web的远程代码编译系统,包括:注册和登录模块、功能按钮模块、命令编辑模块、信息显示模块和历史记录模块;注册和登录模块,用于进行用户校验和标识;
32.功能按钮模块包括代码分支x开始编译按钮、代码分支x编译停止按钮、代码分支x生成bin文件下载按钮、代码分支x编译log下载按钮和模式选择下拉按钮;其中,代码分支x包括代码分支a、代码分支b和代码分支c;模式选择下拉按钮设有手动编译,自动编译和定时编译三个模式选项;
33.命令编辑模块,用于根据代码选择编译命令和git分支,按需为代码分支a、代码分支b和代码分支c编辑具体命令;
34.信息显示模块,用于实时显示当前代码编译过程中的代码编译日志和编译耗时,当多个分支代码同时编译时进行分屏显示;
35.历史记录模块,用于记录代码编译日志、生成bin文件并提供下载功能,还用于对多用户的编译成功率进行统计和排名。
36.相应的,本发明公开了一种基于web的远程代码编译装置,包括:
37.存储器,用于存储基于web的远程代码编译程序;
38.处理器,用于执行所述基于web的远程代码编译级程序时实现如上文任一项所述基于web的远程代码编译方法的步骤。
39.相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有基于web的远程代码编译程序,所述基于web的远程代码编译程序被处理器执行时实现如上文任一项所述基于web的远程代码编译方法的步骤。
40.对比现有技术,本发明有益效果在于:本发明公开了一种基于web的远程代码编译方法、系统、装置及介质,能够把代码编译工作放到性能强大的服务器上并不影响本地开发和调试,相比以前直接用笔记本或台式机编译代码的方法用时减少一半。
41.本发明实现了手动编译、自动编译和定时编译三种远程代码的编译方式,支持同一个用户对多个代码分支同时编译,能够对多个用户的编译成功率有统计和排名,鼓励开发人员减少编译失败率和提高代码水平。
42.本发明有效提高了编译效率,节省了人力时间,给研发测试提供极大方便,有效的改善了代码开发和调试场景。
43.本发明可扩展性强,可适应不同服务器平台的代码编译,有一定的市场价值,技术改进容易,具有很好的推广价值。
44.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
46.图1是本发明具体实施方式的方法流程图。
47.图2是本发明具体实施方式的系统结构图。
48.图中,1、注册和登录模块;2、功能按钮模块;3、命令编辑模块;4、信息显示模块;5、历史记录模块。
具体实施方式
49.本发明的核心是提供一种基于web的远程代码编译方法,现有技术中,代码开发人员的编译工作通常在笔记本电脑上进行,而bios系统的源代码的数量较大,笔记本电脑的数据处理速度相对有限,就导致了编译时间过长,编程和代码调试效率不高。因此,在面对百万级别甚至更多的代码时,编译工作的效率受到了编译设备性能的制约。
50.而本发明提供的基于web的远程代码编译方法,首先,在本地开启git daemon服务,用来共享局域网的本地git仓库;此时在本地访问远端的编译服务器提供的web服务,并进行登录验证。登录成功后,在编译命令编辑模块中编写代码编译所需的命令。然后,选择手动模式、自动模式或定时模式触发代码编译;触发后,实时显示编译过程中产生的编译log和提示信息。编译成功后,下载生成的bios bin文件和代码编译日志,并将包括编译的
log,bin文件、用户名、分支名和编译状态的编译相关信息按照特定格式存放在编译服务器的mysql数据库中,通过从mysql数据库中匹配对应的用户信息进行编译成功率的计算。最后,对用户的编译成功率进行统计和排名。由此可见,本发明能够把代码编译工作放到性能强大的服务器上并不影响本地开发和调试,缩短了编译时间,有效的提高了编译效率。
51.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
52.实施例一:
53.如图1所示,本实施例提供了一种基于web的远程代码编译方法,包括如下步骤:
54.s1:在本地开启git daemon服务,用来共享局域网的本地git仓库。
55.具体的,本地运行脚本用来开启git daemon服务,用来共享局域网的本地git仓库。
56.s2:在本地访问远端的编译服务器提供的web服务,并进行登录验证。
57.其中,进行登录验证时,如果是新用户,则点击注册按钮,输入邮箱和密码注册,注册信息会存储到服务器上的mysql数据库中,如果是老用户则直接登录,登录输入信息会和数据库中的存储信息匹配,匹配成功则登录成功,匹配失败则登录失败。
58.s3:登录成功后,在编译命令编辑模块中编写代码编译所需的命令。
59.具体来说,在编译命令编辑模块中通过命令选择git分支,选择对应的编译工具版本,并保存选择结果;如果有多个代码分支需要编译则按需分别为代码分支编辑具体的执行命令。
60.作为示例的,登录成功后,在编译命令编辑模块中编写代码编译所需的命令,如通过命令选择git分支,选择对应的编译工具版本,最后点击保存。如果有多个代码分支需要编译,以当前有a、b、c三个代码分支为例,则按需分别为代码分支a,b,c三个开始编译按钮编辑具体的执行命令。
61.s4:选择手动模式、自动模式或定时模式触发代码编译。
62.具体来说,通过模式选择下拉按钮选择对应模式。如果选择手动模式,则点击代码分支x开始编译按钮(x=a,b,c)。如果是代码分支(x=a,b,c)选择自动模式,则服务器会主动去查看代码分支是否有新的提交,只要一有新的提交就会触发代码编译。如果是定时模式,如果选择间隔24h,则会每隔24h触发1次代码分支编译。特别的,如果所需编译的代码是第一次开始在服务器上编译,则会先从本地git仓库把所要编译分支的代码完全下载到服务器对应的用户目录下;如果之前已经编译过,则只会同步本地git仓库新的变动,节省下载代码时间。代码和本地代码完成同步后则开始编译。
63.s5:实时显示编译过程中产生的编译log和提示信息。
64.作为示例的,编译过程中产生的编译log实时在显示模块显示,当编译有问题时开发人员在web界面可实时查看编译错误。编译完成后显示模块显示的编译log会提示对应代码分支编译成功,相应的代码分支x开始编译按钮(x=a,b,c)也会变绿。如果编译失败代码分支x开始编译按钮(x=a,b,c)会变红。如果配置了需要邮件通知则无论编译失败还是成功则都会邮件通知对应用户,及时提醒用户。
65.s6:当发出编译停止命令时,实时停止代码编译,等待手动模式或自动模式触发新的代码编译。
66.作为示例的,如果点击代码分支x编译停止按钮(x=a,b,c)则会实时停止代码分支编译,等待用户通过手动模式或自动模式触发新的代码分支编译。
67.s7:编译成功后,下载生成的bios bin文件和代码编译日志。
68.作为示例的,编译成功后可以点击代码分支x_bin下载按钮(x=a,b,c)下载生成的bios bin文件,点击代码分支x_log下载按钮(x=a,b,c)能下载完整的代码编译日志。
69.s8:将包括编译的log,bin文件、用户名、分支名和编译状态的编译相关信息按照特定格式存放在编译服务器的mysql数据库中,通过从mysql数据库中匹配对应的用户信息进行编译成功率的计算。
70.具体来说:每次编译的log,bin文件,用户名,分支名和编译状态都会按照特定格式存放在服务器的mysql数据库中,通过从mysql数据库中匹配对应的用户信息把数据显示在历史记录模块供用户随时下载。特别的,为节省存储成本,限制每次只存储最近20次的编译相关信息。
71.s9:对用户的编译成功率进行统计和排名。
72.本实施例提供了一种基于web的远程代码编译方法,能够把代码编译工作放到性能强大的服务器上并不影响本地开发和调试,实现了手动编译、自动编译和定时编译三种远程代码的编译方式,支持同一个用户对多个代码分支同时编译,能够对多个用户的编译成功率有统计和排名。本方法有效提高了编译效率,节省了人力时间,给研发测试提供极大方便,有效的改善了代码开发和调试场景,并能够鼓励开发人员减少编译失败率和提高代码水平。
73.实施例二:
74.基于实施例一,如图2所示,本发明还公开了一种基于web的远程代码编译系统,包括:注册和登录模块1、功能按钮模块2、命令编辑模块3、信息显示模块4和历史记录模块5。
75.注册和登录模块1,用于进行用户校验和标识。
76.功能按钮模块2包括代码分支x开始编译按钮、代码分支x编译停止按钮、代码分支x生成bin文件下载按钮、代码分支x编译log下载按钮和模式选择下拉按钮。其中,代码分支x包括代码分支a、代码分支b和代码分支c;模式选择下拉按钮设有手动编译,自动编译和定时编译三个模式选项。
77.作为示例的,功能按钮模块实现多个按钮功能,包括代码分支x开始编译按钮、代码分支x编译停止按钮、代码分支x生成bin文件下载按钮、代码分支x编译log下载按钮和模式选择下拉按钮。代码分支x包括代码分支a、代码分支b和代码分支c,即(x=a,b,c)。模式选择下拉按钮有手动编译,自动编译和定时编译编译三大模式选择。
78.命令编辑模块3,用于根据代码选择编译命令和git分支,按需为代码分支a、代码分支b和代码分支c编辑具体命令。
79.具体来说,命令编辑模块是让不同用户来根据不同的代码来选择不同的编译命令和不同的git分支,按需为代码分支a,b,c三个开始编译按钮编辑具体命令。如果只有1个分支代码需要编译则只需为代码分支a开始编译按钮编辑具体命令。
80.信息显示模块4,用于实时显示当前代码编译过程中的代码编译日志和编译耗时,
当多个分支代码同时编译时进行分屏显示.
81.历史记录模块5,用于记录代码编译日志、生成bin文件并提供下载功能,还用于对多用户的编译成功率进行统计和排名。
82.本实施例提供了一种基于web的远程代码编译系统,能够把代码编译工作放到性能强大的服务器上并不影响本地开发和调试,实现了手动编译、自动编译和定时编译三种远程代码的编译方式,支持同一个用户对多个代码分支同时编译,能够对多个用户的编译成功率有统计和排名。本系统有效提高了编译效率,节省了人力时间,给研发测试提供极大方便,有效的改善了代码开发和调试场景,并能够鼓励开发人员减少编译失败率和提高代码水平。
83.实施例三:
84.本实施例公开了一种基于web的远程代码编译装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的基于web的远程代码编译程序时实现以下步骤:
85.1、在本地开启git daemon服务,用来共享局域网的本地git仓库。
86.2、在本地访问远端的编译服务器提供的web服务,并进行登录验证。
87.3、登录成功后,在编译命令编辑模块中编写代码编译所需的命令。
88.4、选择手动模式、自动模式或定时模式触发代码编译。
89.5、实时显示编译过程中产生的编译log和提示信息。
90.6、当发出编译停止命令时,实时停止代码编译,等待手动模式或自动模式触发新的代码编译。
91.7、编译成功后,下载生成的bios bin文件和代码编译日志。
92.8、将包括编译的log,bin文件、用户名、分支名和编译状态的编译相关信息按照特定格式存放在编译服务器的mysql数据库中,通过从mysql数据库中匹配对应的用户信息进行编译成功率的计算。
93.9、对用户的编译成功率进行统计和排名。
94.进一步的,本实施例中的基于web的远程代码编译装置,还可以包括:
95.输入接口,用于获取外界导入的基于web的远程代码编译程序,并将获取到的基于web的远程代码编译程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
96.输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于usb接口、串行接口等。
97.通讯单元,用于在基于web的远程代码编译装置和外部服务器之间建立远程通讯连接,以便于基于web的远程代码编译装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
98.键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
99.显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
100.鼠标,可以用于协助用户输入数据并简化用户的操作。
101.实施例四:
102.本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有基于web的远程代码编译程序,所述基于web的远程代码编译程序被处理器执行时实现以下步骤:
103.1、在本地开启git daemon服务,用来共享局域网的本地git仓库。
104.2、在本地访问远端的编译服务器提供的web服务,并进行登录验证。
105.3、登录成功后,在编译命令编辑模块中编写代码编译所需的命令。
106.4、选择手动模式、自动模式或定时模式触发代码编译。
107.5、实时显示编译过程中产生的编译log和提示信息。
108.6、当发出编译停止命令时,实时停止代码编译,等待手动模式或自动模式触发新的代码编译。
109.7、编译成功后,下载生成的bios bin文件和代码编译日志。
110.8、将包括编译的log,bin文件、用户名、分支名和编译状态的编译相关信息按照特定格式存放在编译服务器的mysql数据库中,通过从mysql数据库中匹配对应的用户信息进行编译成功率的计算。
111.9、对用户的编译成功率进行统计和排名。
112.综上所述,本发明能够利用服务器进行代码编译工作,而且不影响本地的开发和调试工作,有效提高了编译效率,节省了人力时间。
113.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
114.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
115.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
116.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
117.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
118.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
119.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
120.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
121.以上对本发明所提供的基于web的远程代码编译方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1