WO2022183810A1 - Plug-in updating method and apparatus, electronic device, system, and storage medium - Google Patents

Plug-in updating method and apparatus, electronic device, system, and storage medium Download PDF

Info

Publication number
WO2022183810A1
WO2022183810A1 PCT/CN2021/139156 CN2021139156W WO2022183810A1 WO 2022183810 A1 WO2022183810 A1 WO 2022183810A1 CN 2021139156 W CN2021139156 W CN 2021139156W WO 2022183810 A1 WO2022183810 A1 WO 2022183810A1
Authority
WO
WIPO (PCT)
Prior art keywords
plug
target
module
core module
version
Prior art date
Application number
PCT/CN2021/139156
Other languages
French (fr)
Chinese (zh)
Inventor
周智
Original Assignee
京东科技控股股份有限公司
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 京东科技控股股份有限公司 filed Critical 京东科技控股股份有限公司
Publication of WO2022183810A1 publication Critical patent/WO2022183810A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Definitions

  • the present application relates to the field of computer technology, for example, to a plug-in updating method, apparatus, electronic device, system and storage medium.
  • the application needs to refer to the plugin to implement some functions.
  • the Android application needs to refer to the Gradle plugin to add dependencies, analyze dependencies, and resolve dependency conflicts.
  • the Android application refers to the Gradle plugin, it needs to manually add the plugin version in the application directory. information.
  • the present application provides a plug-in update method, apparatus, electronic device, system and storage medium, which can improve plug-in update efficiency.
  • This application provides a plug-in update method, including:
  • the current core module is updated to the target core module, wherein the target plug-in may be a plug-in deployed externally by privatization, or may be a plug-in deployed by non-privatization (ie, internal deployment).
  • the use of the shell module of the target plug-in referenced by the application to determine whether the current core module of the target plug-in needs to be updated includes:
  • the version management server may be an external Paas server when the target plug-in is an externally deployed plug-in, and when the target plug-in is an internally deployed plug-in, the version management server is an internal Paas server.
  • the obtaining the version information of the target core module from the version management server includes:
  • the method when acquiring the version information of the target core module from the version management server, the method further includes:
  • the downloading of the target core module of the target plug-in includes:
  • the target kernel module is downloaded from the plug-in storage server according to the plug-in storage address.
  • the plug-in storage server may be an external Maven server
  • the version management server is an internal Maven server
  • the target plug-in when the target plug-in is a plug-in deployed by external privatization, the target plug-in is obtained in the following manner:
  • the version management address and the plug-in storage address are written into the configuration file of the shell module of the original plug-in to obtain the target plug-in, that is, the target plug-in is a plug-in obtained by modifying the original plug-in developed by the developer.
  • the target plug-in when the target plug-in is an internally deployed plug-in, the target plug-in is an original plug-in developed by a developer.
  • the method further includes:
  • the target plug-in when the target plug-in is a plug-in deployed privately to the outside world, after modifying the original plug-in to obtain the target plug-in, the target plug-in can be published to an external Maven server for other external users to download and use.
  • the application program references the target plug-in in the following manner:
  • the shell module of the target plug-in is added under the root directory according to the version information of the shell module of the target plug-in, and the current kernel module is added under the subdirectory of the application program.
  • the shell module and sum module of the target plug-in can be obtained directly from the local storage; when the target plug-in is an internally deployed plug-in, the shell module and core module of the target plug-in can be obtained from Internal Maven server download.
  • the present application provides a plug-in update device, including:
  • determining module set to utilize the shell module of the target plug-in referenced by the application program to determine whether the current core module of the target plug-in needs to be updated;
  • a download module configured to download the target core module of the target plug-in when it is determined that the current core module needs to be updated
  • an update module configured to update the current core module to the target core module.
  • the present application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and running on the processor, where the processor implements the above plug-in update method when executing the program.
  • the present application also provides a plug-in update system, including a version management server, a plug-in storage server, and an electronic device configured to execute the above-mentioned plug-in update method.
  • the present application also provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the above plug-in update method is implemented.
  • FIG. 1 is a schematic flowchart of a plug-in update method provided by an embodiment of the present application
  • FIG. 2 is a schematic flowchart of another plug-in update method provided by an embodiment of the present application.
  • FIG. 3 is a schematic interface diagram of a parameter configuration provided by an embodiment of the present application.
  • FIG. 4 is an interactive schematic diagram of a plug-in update system provided by an embodiment of the present application.
  • FIG. 5 is a schematic flowchart of another plug-in update method provided by an embodiment of the present application.
  • FIG. 6 is a schematic structural diagram of a plug-in update device provided by an embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of a plug-in update system provided by an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
  • the application reference plugin has at least the following problems: 1. When the referenced plugin needs to be updated, the user needs to be notified to manually modify the version information of the plugin added in the application directory, which is not intelligent enough and the update efficiency is low; 2. When the plug-in is deployed in large-scale external output privatization, different teams have inconsistent requirements for the plug-in. When the plug-in is updated, frequent communication with different teams is required, and the maintenance cost is high; 3. When the plug-in is deployed externally for privatization, it needs to be modified according to user needs. Plug-in code and package and regenerate the plug-in, which is cumbersome to deploy.
  • FIG. 1 is a schematic flowchart of a plug-in updating method provided by an embodiment of the present application.
  • the method may be performed by a plug-in updating apparatus provided by an embodiment of the present application, and the apparatus may be implemented in software and/or hardware.
  • the apparatus may be integrated into an electronic device, such as a mobile phone, a personal computer (Personal Computer, PC), a tablet computer, a notebook computer, a desktop computer, and other electronic devices.
  • PC Personal Computer
  • tablet computer tablet computer
  • notebook computer a desktop computer
  • the method may include the following steps:
  • Step 101 using the shell module of the target plug-in referenced by the application program to determine whether the current core module of the target plug-in needs to be updated.
  • the application can be an Android (mobile operating system developed by Google) application, an IOS (mobile operating system developed by Apple) application, and the target plug-in can be a plug-in referenced by the application to implement related functions, such as Gradle plugin, Android applications can manage application builds and resolve dependency-related issues by referencing Gradle plugins.
  • Android mobile operating system developed by Google
  • IOS mobile operating system developed by Apple
  • the target plug-in can be a plug-in referenced by the application to implement related functions, such as Gradle plugin
  • Android applications can manage application builds and resolve dependency-related issues by referencing Gradle plugins.
  • the plug-in is designed as a shell module + core module structure, wherein the shell module is mainly used to implement functions such as version update of the core module and privatized deployment of the plug-in; the core module is mainly used to implement real business logic, For example: dynamically add dependencies, dynamically analyze dependencies, dynamically resolve dependency conflicts, etc.
  • the shell module can find the entry of the core module of the plug-in through reflection technology, so as to execute the latest core module and achieve the ability of automatic upgrade.
  • the version information of the shell module of the target plug-in can be added under the root directory of the application through user operation. Download the shell module and current core module of the target plug-in from the plug-in storage server, automatically add the downloaded shell module of the target plug-in to the root directory of the application, and automatically add the current core module of the downloaded target plug-in to the sub-folder of the application In the directory, when the application is running, it can execute the current kernel module in the subdirectory to realize related functions.
  • the shell module of the target plug-in can determine whether the current core module of the target plug-in needs to be updated in real time or periodically, and the method for determining whether the current core module of the target plug-in needs to be updated can be as follows :
  • the shell module of the target plug-in can be used to read the jar package file of the current core module in the subdirectory of the application, and parse the file name to obtain the version information of the current core module.
  • the version management address may be obtained from the configuration file of the shell module of the target plug-in, and the version information of the target core module may be obtained from the version management server according to the version management address.
  • the configuration file may be, for example, a Manifest.MF file.
  • the version information of the target kernel module indicates that the version of the kernel module is 2.0
  • the version information of the current kernel module indicates that the kernel module version is 1.0
  • Step 102 when it is determined that the current core module needs to be updated, download the target core module of the target plug-in.
  • the plug-in storage address can also be obtained, and when it is determined that the current core module needs to be updated, the target core module can be downloaded from the plug-in storage server according to the plug-in storage address.
  • Step 103 Update the current core module to the target core module.
  • the shell module of the target plug-in referenced by the application program can be used to determine whether the current core module of the target plug-in needs to be updated.
  • the target core module of the target plug-in is downloaded, and the current core module is updated.
  • the target kernel module is the target kernel module. That is, in the embodiment of the present application, the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated.
  • the automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.
  • the plug-in is a shell module + core module structure
  • the plug-in update only needs to update the core module of the plug-in.
  • the plug-in When the plug-in is deployed on a large scale, it only needs to communicate with different teams about the update of the core module, and there is no need to reconnect with the plug-in. Multiple teams communicate and modify plug-in code and notify different teams to modify version information, reducing maintenance costs.
  • the plug-in source code when the plug-in output is deployed in privatization, for security reasons, the plug-in source code is not open to the outside world, and only the obfuscated plug-in jar package is provided, but the user needs to customize some parameters according to the privatization deployment environment, for example, customizing the private Information about the version management server of the deployment, information about the privatized plug-in storage server that stores binary dependencies, and so on.
  • the relevant solution is usually: re-modify the plug-in source code for different customers, and then repackage to generate a new plug-in for external output. This method is not only cumbersome but also has high operation and maintenance costs, and requires frequent communication with external teams.
  • the embodiments of the present application also provide corresponding solutions, which are described below with reference to FIG. 2 .
  • another plugin update method provided by this embodiment of the present application includes the following steps:
  • Step 201 Obtain the configured version management address and plug-in storage address from a preset deployment interface.
  • the original Gradle plugin consists of a shell module and a core module.
  • the shell module has a corresponding shell module jar package
  • the core module has a corresponding core module jar package.
  • the jar package of the core module can be used to obfuscate the code. provided in the form of.
  • the preset deployment interface can be as shown in FIG. 3, including a version management server (such as a Paas server) , Configurable items of the plug-in storage server (such as a Maven server), configurable items of the plug-in storage server, such as the address of the plug-in storage server (that is, the plug-in storage address), user name, password, Configurable items of the version management server such as version The address of the management server (ie, the version management address).
  • the preset deployment interface may also include other information, such as the version number of the plug-in shell module, the version number of the core module, and pom file information.
  • the electronic device obtains the configured version management address and plug-in storage address from the preset deployment interface, and writes the version management address and plug-in storage address into the original through the jar command line.
  • the configuration file of the Gradle plugin's shell module to get the target Gradle plugin.
  • the configuration file of the shell module of the original Gradle plug-in can have information such as the version management address of the default configuration and the storage address of the plug-in.
  • the default configuration can be modified to the user configuration.
  • the relevant implementation logic code configured by the user may be as follows:
  • Step 202 Write the version management address and the plug-in storage address into the configuration file of the shell module of the original plug-in to obtain the target plug-in.
  • the shell module of the target Gradle plugin is different from the shell module of the original Gradle plugin, but the core module is the same for both.
  • Step 203 uploading the target plug-in to the plug-in storage server.
  • the electronic device can obtain the version number of the plug-in shell module, the version number of the core module, the pom file information, etc. from the preset deployment interface, and use Gradle's maven-publish Publish the target Gradle plugin to the plugin storage server for use by other users.
  • Step 204 Add version information of the shell module of the target plug-in in the root directory of the application according to the user operation.
  • the version information of the shell module of the target Gradle plugin can be added under the root directory of the application (for example, under the build.gradle file in the root directory) through user operations, such as: myplugin_shell: 1.0.
  • Step 205 according to the version information of the shell module of the target plug-in, add the shell module of the target plug-in in the root directory of the application, and add the current core module in the subdirectory of the application.
  • the shell module of the target Gradle plugin for example: myplugin_shell: 1.0 jar package
  • the current core module for example: myplugin_core_1.0
  • the shell module of the target Gradle plugin can be automatically downloaded from the plugin storage server according to the added version information jar package
  • automatically add the shell module of the downloaded target Gradle plugin to the root directory of the application for example, under the build.gradle file in the root directory
  • automatically add the current core module of the downloaded target Gradle plugin to the root directory of the application Under the subdirectory of the application (such as the .gradle directory)
  • the current kernel module in the subdirectory can be executed to achieve related functions.
  • Step 206 using the shell module of the target plug-in to determine the version information of the current kernel module.
  • the shell module of the target Gradle plug-in can be used to read the jar package file of the current core module in the subdirectory of the application, and parse the file name to obtain the version information of the current core module.
  • Step 207 Obtain the version management address from the configuration file of the shell module of the target plug-in.
  • the version management address may be obtained from the configuration file of the shell module of the target plug-in, and the version information of the target core module may be obtained from the version management server according to the version management address.
  • the configuration file may be, for example, a Manifest.MF file.
  • Step 208 Acquire the version information and plug-in storage address of the target core module from the version management server according to the version management address.
  • the data format of the data obtained from the version management server is as follows:
  • Step 209 determine whether the current nuclear module needs to be updated according to the version information of the current nuclear module and the version information of the target nuclear module, if the current nuclear module needs to be updated, then execute step 210, if the current nuclear module does not need to be updated, then execute step 212 to end deal with.
  • the version information of the target core module is myplugin_core_2.0 and the version information of the current core module is myplugin_core_1.0, it can be determined that the version of the target core module is higher than that of the current core module, and the current core module needs to be updated.
  • Step 210 Download the target core module from the plug-in storage server according to the plug-in storage address.
  • Step 211 update the current core module to the target core module.
  • Step 212 end.
  • the target plug-in is the plug-in obtained by dynamically configuring the original plug-in developed by the developer.
  • the user mentioned in this embodiment is equivalent to the client, the version management server and the developer for the developer.
  • Plug-in storage servers are all client-side servers.
  • the shell module of the target plug-in referenced by the application can be used to determine whether the current core module of the target plug-in needs to be updated, and when it is determined that the current core module needs to be updated, the target core module of the target plug-in is downloaded.
  • module to update the current kernel module to the target kernel module that is, in the embodiment of the present application, the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated.
  • the automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.
  • the plug-in update only needs to update the core module, and developers can focus on the design of the core module, which reduces the development and operation and maintenance costs of the plug-in.
  • another method for updating a plugin includes the following steps:
  • Step 301 Add version information of the shell module of the target plug-in in the root directory of the application according to the user operation.
  • the Gradle plug-in in this embodiment is still composed of a shell module and a core module, and the developer can upload the developed original Gradle plug-in (that is, the target Gradle plug-in) to the plug-in storage server.
  • the version information of the shell module of the target Gradle plugin can be added under the root directory of the application (for example, under the build.gradle file in the root directory) through user operations, such as :myplugin_shell:1.0.
  • Step 302 download the shell module and the current core module of the target plug-in from the plug-in storage server according to the version information of the shell module of the target plug-in.
  • Step 303 add the shell module of the target plug-in in the root directory of the application, and add the current kernel module in the subdirectory of the application.
  • the shell module of the downloaded target Gradle plugin can be added to the root directory of the application (for example, the build.gradle file in the root directory), and the current core module of the downloaded target Gradle plugin can be added to the subdirectory of the application (such as the .gradle directory), when the application is running, it can execute the current kernel module in the subdirectory to achieve related functions.
  • the root directory of the application for example, the build.gradle file in the root directory
  • the current core module of the downloaded target Gradle plugin can be added to the subdirectory of the application (such as the .gradle directory), when the application is running, it can execute the current kernel module in the subdirectory to achieve related functions.
  • Step 304 using the shell module of the target plug-in to determine the version information of the current core module.
  • the shell module of the target Gradle plug-in can be used to read the jar package file of the current core module in the subdirectory of the application, and parse the file name to obtain the version information of the current core module.
  • Step 305 Obtain the version management address from the configuration file of the shell module of the target plug-in.
  • the configuration file may be a Manifest.MF file, for example.
  • Step 306 Acquire the version information of the target core module and the plug-in storage address from the version management server according to the version management address.
  • Step 307 Determine whether the current core module needs to be updated according to the version information of the current core module and the version information of the target core module, if the current core module needs to be updated, then execute step 308, if the current core module does not need to be updated, then execute step 310 to end deal with.
  • the version information of the target core module is myplugin_core_2.0 and the version information of the current core module is myplugin_core_1.0, it can be determined that the version of the target core module is higher than that of the current core module, and the current core module needs to be updated.
  • Step 308 download the target core module from the plug-in storage server according to the plug-in storage address.
  • Step 309 update the current core module to the target core module.
  • Step 310 end.
  • the target plug-in is the original plug-in developed by the developer.
  • the user mentioned in this embodiment is equivalent to an internal user to the developer.
  • the version management server and the plug-in storage server are both internal server.
  • the shell module of the target plug-in referenced by the application can be used to determine whether the current core module of the target plug-in needs to be updated, and when it is determined that the current core module needs to be updated, the target plug-in's target plug-in is downloaded.
  • kernel module update the current kernel module to the target kernel module. That is, in the embodiment of the present application, the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated.
  • the automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.
  • the plug-in update only needs to update the core module, and developers can focus on the design of the core module, which reduces the development and operation and maintenance costs of the plug-in.
  • steps in the flowcharts of FIGS. 2 and 5 are displayed in sequence according to the arrows, these steps are not necessarily executed in the sequence indicated by the arrows. Unless stated herein, the steps are not strictly limited to the order in which they are performed, and the steps may be performed in other orders. Moreover, at least a part of the steps in FIGS. 2 and 5 may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but may be executed at different times. These sub-steps or stages are not necessarily completed at the same time. The order of execution of the steps is not necessarily sequential, but may be performed alternately or alternately with other steps or at least a part of sub-steps or stages of other steps.
  • the schematic interface diagrams shown in the embodiments of the present disclosure are intended to illustrate a method for deploying a detection plug-in for sensitive functions, and the content (including but not limited to text, pictures, etc.) presented on the interface does not constitute a limitation on the solution.
  • FIG. 6 is a structural diagram of a plug-in updating apparatus provided by an embodiment of the present application, and the apparatus is suitable for executing the plug-in updating method provided by the embodiment of the present application.
  • the apparatus may include:
  • the determining module 401 is configured to use the shell module of the target plug-in referenced by the application to determine whether the current core module of the target plug-in needs to be updated; the downloading module 402 is configured to download the target when it is determined that the current core module needs to be updated The target core module of the plug-in; the update module 403 is configured to update the current core module to the target core module.
  • the determining module 401 is configured to:
  • the determining module 401 is configured to obtain the version information of the target core module from the version management server in the following manner:
  • the version management address is obtained from the configuration file of the shell module of the target plug-in; the version information of the target core module is obtained from the version management server according to the version management address.
  • the determining module 401 is further configured to: when acquiring the version information of the target core module from the version management server, acquire the plug-in storage address from the version management server.
  • the download module 402 is configured to download the target core module of the target plug-in in the following manner:
  • the target kernel module is downloaded from the plug-in storage server according to the plug-in storage address.
  • the target plug-in is obtained in the following manner:
  • the device further includes:
  • the uploading module is configured to upload the target plug-in to the plug-in storage server.
  • the application program references the target plug-in in the following manner:
  • the version information of the shell module of the target plug-in is added under the root directory of the application program according to the user operation; the shell module of the target plug-in is added under the root directory according to the version information of the shell module of the target plug-in, And add the current kernel module in the subdirectory of the application.
  • the device of the embodiment of the present application can use the shell module of the target plug-in referenced by the application program to determine whether the current core module of the target plug-in needs to be updated, when it is determined that the current core module needs to be updated, the target core module of the target plug-in is downloaded, and the current core module Update to target kernel module.
  • the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated.
  • the automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.
  • the plug-in is designed in the form of a shell module and a core module.
  • the plug-in update only needs to update the core module. Developers can focus on the design of the core module, which reduces the development and operation and maintenance costs of the plug-in.
  • the plug-in is a shell module + core module structure
  • the plug-in update only needs to update the core module of the plug-in.
  • the plug-in When the plug-in is deployed on a large scale, it only needs to communicate with different teams about the update of the core module, and there is no need to reconnect with the plug-in. Multiple teams communicate and modify plug-in code and notify different teams to modify version information, reducing maintenance costs.
  • the customized parameters are exposed to the user through the privatized deployment interface (ie, the preset deployment interface) for self-management, and the customized parameters are obtained through the privatized deployment interface, so as to realize the customization of the plug-in and reduce the number of plug-ins. deployment and upgrade operation and maintenance costs.
  • the privatized deployment interface ie, the preset deployment interface
  • Embodiments of the present application further provide an electronic device, including a memory, a processor, and a computer program stored on the memory and running on the processor, where the processor implements any of the above when executing the program
  • the plug-in update method provided by the embodiment is not limited to a Wi-Fi connection.
  • Embodiments of the present application further provide a computer-readable medium on which a computer program is stored, and when the program is executed by a processor, implements the plug-in update method provided by any of the foregoing embodiments.
  • An embodiment of the present application further provides a plug-in update system, as shown in FIG. 7 , including a version management server 501, a plug-in storage server 502, and an electronic device 503 configured to execute the plug-in update method described in any of the embodiments of the present application , the interaction between multiple devices can be referred to the description of the previous embodiment, which is not repeated here.
  • FIG. 8 shows a schematic structural diagram of a computer system 600 suitable for implementing the electronic device of the embodiment of the present application.
  • the electronic device shown in FIG. 8 is only an example, and should not impose any limitations on the functions and scope of use of the embodiments of the present application.
  • the computer system 600 includes a central processing unit (Central Processing Unit, CPU) 601, which can be loaded into a random device according to a program stored in a read-only memory (Read-Only Memory, ROM) 602 or from a storage part 608
  • CPU Central Processing Unit
  • RAM Random Access Memory
  • various programs and data required for the operation of the system 600 are also stored.
  • the CPU 601, the ROM 602, and the RAM 603 are connected to each other through a bus 604.
  • An Input/Output (I/O) interface 605 is also connected to the bus 604 .
  • the following components are connected to the I/O interface 605: an input section 606 including a keyboard, a mouse, etc.; an output section 607 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc. ; a storage section 608 including a hard disk, etc.; and a communication section 609 including a network interface card such as a local area network (Local Area Network, LAN) card, a modem, and the like. The communication section 609 performs communication processing via a network such as the Internet.
  • a drive 610 is also connected to the I/O interface 605 as needed.
  • a removable medium 611 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is mounted on the drive 610 as needed so that a computer program read therefrom is installed into the storage section 608 as needed.
  • embodiments disclosed herein include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the method illustrated in the flowchart.
  • the computer program may be downloaded and installed from the network via the communication portion 609 and/or installed from the removable medium 611 .
  • the computer program is executed by the CPU 601
  • the above-described functions defined in the system of the present application are executed.
  • the computer-readable medium shown in this application may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the above two.
  • the computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus or device, or a combination of any of the above.
  • Examples of computer-readable storage media may include, but are not limited to, electrical connections with one or more wires, portable computer disks, hard disks, RAM, ROM, Erasable Programmable Read-Only Memory (EPROM) or flash memory), optical fiber, portable compact disk read-only memory (Compact Disc Read-Only Memory, CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
  • a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
  • a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code therein. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • a computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium that can transmit, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device .
  • the program code embodied on the computer readable medium may be transmitted by any suitable medium, including but not limited to: wireless, wire, optical fiber cable, radio frequency (RF), etc., or any suitable combination of the above.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code that contains one or more logical functions for implementing the specified functions executable instructions.
  • the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
  • the modules and/or units involved in the embodiments of the present application may be implemented in a software manner, and may also be implemented in a hardware manner.
  • the described modules and/or units can also be provided in the processor, for example, it can be described as: a processor includes a determination module, a download module and an update module.
  • the names of these modules do not, in one case, constitute a limitation on the module itself.
  • the present application also provides a computer-readable medium.
  • the computer-readable medium may be included in the device described in the above embodiments, or may exist alone without being assembled into the device.
  • the above-mentioned computer-readable medium carries one or more programs, and when the above-mentioned one or more programs are executed by a device, the device includes: determining the current core of the target plug-in using the shell module of the target plug-in referenced by the application program. Whether the module needs to be updated; when it is determined that the current core module needs to be updated, download the target core module of the target plug-in; update the current core module to the target core module.
  • the shell module of the target plug-in referenced by the application can be used to determine whether the current core module of the target plug-in needs to be updated.
  • the target core module of the target plug-in is downloaded, and the current The kernel module is updated to the target kernel module.
  • the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated.
  • the automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.

Abstract

A plug-in updating method and apparatus, an electronic device, a system, and a storage medium. The plug-in updating method comprises: using a shell module of a target plug-in referenced by an application program to determine whether a current core module of the target plug-in needs to be updated (101); upon determination that the current core module needs to be updated, downloading a target core module of the target plug-in (102); and updating the current core module to the target core module (103).

Description

插件更新方法、装置、电子设备、系统和存储介质Plug-in update method, apparatus, electronic device, system and storage medium
本申请要求在2021年03月01日提交中国专利局、申请号为202110226815.1的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。This application claims the priority of a Chinese patent application with application number 202110226815.1 filed with the China Patent Office on March 1, 2021, the entire contents of which are incorporated herein by reference.
技术领域technical field
本申请涉及计算机技术领域,例如涉及一种插件更新方法、装置、电子设备、系统和存储介质。The present application relates to the field of computer technology, for example, to a plug-in updating method, apparatus, electronic device, system and storage medium.
背景技术Background technique
应用程序需要引用插件来实现一些功能,比如Android应用程序需要引用Gradle插件来添加依赖、分析依赖、解决依赖冲突等,Android应用程序在引用Gradle插件时,需要手动在应用程序的目录下添加插件版本信息。The application needs to refer to the plugin to implement some functions. For example, the Android application needs to refer to the Gradle plugin to add dependencies, analyze dependencies, and resolve dependency conflicts. When the Android application refers to the Gradle plugin, it needs to manually add the plugin version in the application directory. information.
发明内容SUMMARY OF THE INVENTION
本申请提供一种插件更新方法、装置、电子设备、系统和存储介质,能够提高插件更新效率。The present application provides a plug-in update method, apparatus, electronic device, system and storage medium, which can improve plug-in update efficiency.
本申请提供一种插件更新方法,包括:This application provides a plug-in update method, including:
利用应用程序引用的目标插件的壳模块确定所述目标插件的当前核模块是否需要更新;Use the shell module of the target plug-in referenced by the application to determine whether the current core module of the target plug-in needs to be updated;
在确定所述当前核模块需要更新时,下载所述目标插件的目标核模块;When it is determined that the current core module needs to be updated, downloading the target core module of the target plug-in;
将所述当前核模块更新为所述目标核模块,其中目标插件可以是对外私有化部署的插件,也可以是非私有化部署(即内部部署)的插件。The current core module is updated to the target core module, wherein the target plug-in may be a plug-in deployed externally by privatization, or may be a plug-in deployed by non-privatization (ie, internal deployment).
一实施例中,所述利用应用程序引用的目标插件的壳模块确定所述目标插件的当前核模块是否需要更新,包括:In one embodiment, the use of the shell module of the target plug-in referenced by the application to determine whether the current core module of the target plug-in needs to be updated includes:
利用所述目标插件的壳模块确定所述当前核模块的版本信息;Use the shell module of the target plug-in to determine the version information of the current core module;
从版本管理服务器获取所述目标核模块的版本信息;Obtain the version information of the target core module from the version management server;
在所述目标核模块的版本信息表示的版本高于所述当前核模块的版本信息表示的版本时,确定所述当前核模块需要更新。When the version indicated by the version information of the target core module is higher than the version indicated by the version information of the current core module, it is determined that the current core module needs to be updated.
其中,当目标插件为对外私有化部署的插件时,版本管理服务器可以为外部的Paas服务器,当目标插件为内部部署的插件时,版本管理服务器为内部的Paas服务器。The version management server may be an external Paas server when the target plug-in is an externally deployed plug-in, and when the target plug-in is an internally deployed plug-in, the version management server is an internal Paas server.
一实施例中,所述从版本管理服务器获取所述目标核模块的版本信息,包括:In an embodiment, the obtaining the version information of the target core module from the version management server includes:
从所述目标插件的壳模块的配置文件中获取版本管理地址;Obtain the version management address from the configuration file of the shell module of the target plug-in;
根据所述版本管理地址从所述版本管理服务器获取所述目标核模块的版本信息。Acquire the version information of the target core module from the version management server according to the version management address.
一实施例中,在从所述版本管理服务器获取所述目标核模块的版本信息时,还包括:In an embodiment, when acquiring the version information of the target core module from the version management server, the method further includes:
从所述版本管理服务器获取插件存储地址;Obtain the plug-in storage address from the version management server;
所述下载所述目标插件的目标核模块,包括:The downloading of the target core module of the target plug-in includes:
根据所述插件存储地址从插件存储服务器下载所述目标核模块。The target kernel module is downloaded from the plug-in storage server according to the plug-in storage address.
其中,当目标插件为对外私有化部署的插件时,插件存储服务器可以为外部的Maven服务器,当目标插件为内部部署的插件时,版本管理服务器为内部的Maven服务器。Wherein, when the target plug-in is an externally privatized deployment plug-in, the plug-in storage server may be an external Maven server, and when the target plug-in is an internally deployed plug-in, the version management server is an internal Maven server.
一实施例中,当所述目标插件为对外私有化部署的插件时,所述目标插件通过如下方式得到:In one embodiment, when the target plug-in is a plug-in deployed by external privatization, the target plug-in is obtained in the following manner:
从预设部署界面获取配置的所述版本管理地址和所述插件存储地址;Obtain the configured version management address and the plug-in storage address from the preset deployment interface;
将所述版本管理地址和所述插件存储地址写入原始插件的壳模块的配置文件,得到所述目标插件,即目标插件为修改开发人员开发的原始插件得到的插件。The version management address and the plug-in storage address are written into the configuration file of the shell module of the original plug-in to obtain the target plug-in, that is, the target plug-in is a plug-in obtained by modifying the original plug-in developed by the developer.
另外,当所述目标插件为内部部署的插件时,目标插件为开发人员开发的原始插件。In addition, when the target plug-in is an internally deployed plug-in, the target plug-in is an original plug-in developed by a developer.
一实施例中,所述方法还包括:In one embodiment, the method further includes:
将所述目标插件上传至所述插件存储服务器。即当目标插件为对外私有化部署的插件时,在修改原始插件得到目标插件之后,可以将目标插件发布至外部的Maven服务器,以供外部的其他用户下载使用。uploading the target plug-in to the plug-in storage server. That is, when the target plug-in is a plug-in deployed privately to the outside world, after modifying the original plug-in to obtain the target plug-in, the target plug-in can be published to an external Maven server for other external users to download and use.
一实施例中,所述应用程序通过如下方式引用所述目标插件:In one embodiment, the application program references the target plug-in in the following manner:
根据用户操作在所述应用程序的根目录下添加所述目标插件的壳模块的版本信息;Add the version information of the shell module of the target plug-in under the root directory of the application according to the user operation;
根据所述目标插件的壳模块的版本信息在所述根目录下添加所述目标插件的壳模块,并在所述应用程序的子目录下添加所述当前核模块。The shell module of the target plug-in is added under the root directory according to the version information of the shell module of the target plug-in, and the current kernel module is added under the subdirectory of the application program.
其中,当目标插件为对外私有化部署的插件时,目标插件的壳模块和和模 块可以直接从本地存储中获取,当目标插件为内部部署的插件时,目标插件的壳模块和核模块可以从内部的Maven服务器下载。Among them, when the target plug-in is an externally deployed plug-in, the shell module and sum module of the target plug-in can be obtained directly from the local storage; when the target plug-in is an internally deployed plug-in, the shell module and core module of the target plug-in can be obtained from Internal Maven server download.
本申请提供一种插件更新装置,包括:The present application provides a plug-in update device, including:
确定模块,设置为利用应用程序引用的目标插件的壳模块确定所述目标插件的当前核模块是否需要更新;determining module, set to utilize the shell module of the target plug-in referenced by the application program to determine whether the current core module of the target plug-in needs to be updated;
下载模块,设置为在确定所述当前核模块需要更新时,下载所述目标插件的目标核模块;A download module, configured to download the target core module of the target plug-in when it is determined that the current core module needs to be updated;
更新模块,设置为将所述当前核模块更新为所述目标核模块。an update module, configured to update the current core module to the target core module.
本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的插件更新方法。The present application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and running on the processor, where the processor implements the above plug-in update method when executing the program.
本申请还提供了一种插件更新系统,包括版本管理服务器、插件存储服务器以及设置为执行上述的插件更新方法的电子设备。The present application also provides a plug-in update system, including a version management server, a plug-in storage server, and an electronic device configured to execute the above-mentioned plug-in update method.
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的插件更新方法。The present application also provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the above plug-in update method is implemented.
附图说明Description of drawings
图1是本申请实施例提供的一种插件更新方法的流程示意图;1 is a schematic flowchart of a plug-in update method provided by an embodiment of the present application;
图2是本申请实施例提供的另一种插件更新方法的流程示意图;2 is a schematic flowchart of another plug-in update method provided by an embodiment of the present application;
图3是本申请实施例提供的一种参数配置的界面示意图;3 is a schematic interface diagram of a parameter configuration provided by an embodiment of the present application;
图4是本申请实施例提供的一种插件更新系统的交互示意图;4 is an interactive schematic diagram of a plug-in update system provided by an embodiment of the present application;
图5是本申请实施例提供的另一种插件更新方法的流程示意图;5 is a schematic flowchart of another plug-in update method provided by an embodiment of the present application;
图6是本申请实施例提供的一种插件更新装置的结构示意图;6 is a schematic structural diagram of a plug-in update device provided by an embodiment of the present application;
图7是本申请实施例提供的一种插件更新系统的结构示意图;7 is a schematic structural diagram of a plug-in update system provided by an embodiment of the present application;
图8是本申请实施例提供的一种电子设备的结构示意图。FIG. 8 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
具体实施方式Detailed ways
下面结合附图和实施例对本申请进行说明。此处所描述的具体实施例仅仅用于解释本申请。为了便于描述,附图中仅示出了与本申请相关的部分。The present application will be described below with reference to the accompanying drawings and embodiments. The specific embodiments described herein are merely used to explain the present application. For the convenience of description, only the parts related to the present application are shown in the drawings.
应用程序引用插件至少存在如下几个问题:1:当需要对引用的插件进行更新时,需要通知用户手动修改应用程序的目录下添加的插件版本信息,不够智 能化,更新效率低;2、当插件大规模对外输出私有化部署时,不同团队对插件的需求不一致,插件更新时需要与不同的团队进行频繁的沟通,维护成本高;3、插件对外输出私有化部署时,需要根据用户需求修改插件代码并打包重新生成插件,部署繁琐。The application reference plugin has at least the following problems: 1. When the referenced plugin needs to be updated, the user needs to be notified to manually modify the version information of the plugin added in the application directory, which is not intelligent enough and the update efficiency is low; 2. When When the plug-in is deployed in large-scale external output privatization, different teams have inconsistent requirements for the plug-in. When the plug-in is updated, frequent communication with different teams is required, and the maintenance cost is high; 3. When the plug-in is deployed externally for privatization, it needs to be modified according to user needs. Plug-in code and package and regenerate the plug-in, which is cumbersome to deploy.
图1为本申请实施例提供的一种插件更新方法的流程示意图,该方法可以由本申请实施例提供的插件更新装置来执行,该装置可采用软件和/或硬件的方式实现。在一实施例中,该装置可以集成在电子设备中,电子设备比如可以是手机、个人计算机(Personal Computer,PC)、平板电脑、笔记本电脑、台式电脑等电子设备。以下实施例将以该装置集成在电子设备中为例进行说明。参考图1,该方法可以包括如下步骤:FIG. 1 is a schematic flowchart of a plug-in updating method provided by an embodiment of the present application. The method may be performed by a plug-in updating apparatus provided by an embodiment of the present application, and the apparatus may be implemented in software and/or hardware. In one embodiment, the apparatus may be integrated into an electronic device, such as a mobile phone, a personal computer (Personal Computer, PC), a tablet computer, a notebook computer, a desktop computer, and other electronic devices. The following embodiments will be described by taking the device integrated into an electronic device as an example. Referring to Figure 1, the method may include the following steps:
步骤101,利用应用程序引用的目标插件的壳模块确定目标插件的当前核模块是否需要更新。 Step 101, using the shell module of the target plug-in referenced by the application program to determine whether the current core module of the target plug-in needs to be updated.
示例地,应用程序可以是Android(谷歌公司开发的移动操作系统)应用程序、IOS(苹果公司开发的移动操作系统)应用程序,目标插件可以是应用程序引用的用来实现相关功能的插件,比如Gradle插件,Android应用程序可以通过引用Gradle插件来管理应用程序的构建、解决依赖相关问题。For example, the application can be an Android (mobile operating system developed by Google) application, an IOS (mobile operating system developed by Apple) application, and the target plug-in can be a plug-in referenced by the application to implement related functions, such as Gradle plugin, Android applications can manage application builds and resolve dependency-related issues by referencing Gradle plugins.
本申请实施例中,将插件设计成壳模块+核模块的结构,其中,壳模块主要用于实现核模块的版本更新、插件私有化部署等功能;核模块主要用于实现真正的业务逻辑,比如:动态添加依赖、动态分析依赖、动态解决依赖冲突等。壳模块可以通过反射技术找到插件的核模块的入口,从而执行最新的核模块,达到自动升级的能力。In the embodiment of this application, the plug-in is designed as a shell module + core module structure, wherein the shell module is mainly used to implement functions such as version update of the core module and privatized deployment of the plug-in; the core module is mainly used to implement real business logic, For example: dynamically add dependencies, dynamically analyze dependencies, dynamically resolve dependency conflicts, etc. The shell module can find the entry of the core module of the plug-in through reflection technology, so as to execute the latest core module and achieve the ability of automatic upgrade.
在应用程序需要引用目标插件时,可以通过用户操作在应用程序的根目录下添加目标插件的壳模块的版本信息,该版本信息比如版本号,在应用程序初始化时,可以根据添加的版本号自动从插件存储服务器下载目标插件的壳模块和当前核模块,将下载的目标插件的壳模块自动添加在应用程序的根目录下,并将下载的目标插件的当前核模块自动添加在应用程序的子目录下,应用程序在运行的时候,可以执行子目录下的当前核模块,以实现相关功能。When the application needs to reference the target plug-in, the version information of the shell module of the target plug-in can be added under the root directory of the application through user operation. Download the shell module and current core module of the target plug-in from the plug-in storage server, automatically add the downloaded shell module of the target plug-in to the root directory of the application, and automatically add the current core module of the downloaded target plug-in to the sub-folder of the application In the directory, when the application is running, it can execute the current kernel module in the subdirectory to realize related functions.
在本申请实施例中,在应用程序引用目标插件之后,目标插件的壳模块可以实时或定时地确定目标插件的当前核模块是否需要更新,确定目标插件的当前核模块是否需要更新的方法可如下:In this embodiment of the present application, after the application program references the target plug-in, the shell module of the target plug-in can determine whether the current core module of the target plug-in needs to be updated in real time or periodically, and the method for determining whether the current core module of the target plug-in needs to be updated can be as follows :
(1)利用目标插件的壳模块确定当前核模块的版本信息。(1) Use the shell module of the target plug-in to determine the version information of the current kernel module.
比如,可以利用目标插件的壳模块读取应用程序的子目录下的当前核模块的jar包文件,解析文件名得到当前核模块的版本信息。For example, the shell module of the target plug-in can be used to read the jar package file of the current core module in the subdirectory of the application, and parse the file name to obtain the version information of the current core module.
(2)从版本管理服务器获取目标核模块的版本信息。(2) Obtain the version information of the target core module from the version management server.
比如,可以从目标插件的壳模块的配置文件中获取版本管理地址,根据版本管理地址从版本管理服务器获取目标核模块的版本信息,该配置文件例如可以是Manifest.MF文件。For example, the version management address may be obtained from the configuration file of the shell module of the target plug-in, and the version information of the target core module may be obtained from the version management server according to the version management address. The configuration file may be, for example, a Manifest.MF file.
(3)在目标核模块的版本信息表示的版本高于当前核模块的版本信息表示的版本时,确定当前核模块需要更新。(3) When the version indicated by the version information of the target core module is higher than the version indicated by the version information of the current core module, it is determined that the current core module needs to be updated.
例如,目标核模块的版本信息表示的核模块版本为2.0,当前核模块的版本信息表示的核模块版本为1.0,则可以确定目标核模块的版本高于当前核模块的版本,当前核模块需要更新。For example, if the version information of the target kernel module indicates that the version of the kernel module is 2.0, and the version information of the current kernel module indicates that the kernel module version is 1.0, it can be determined that the version of the target kernel module is higher than the version of the current kernel module, and the current kernel module needs renew.
步骤102,在确定当前核模块需要更新时,下载目标插件的目标核模块。 Step 102, when it is determined that the current core module needs to be updated, download the target core module of the target plug-in.
在从版本管理服务器获取目标核模块的版本信息时,还可以获取插件存储地址,在确定当前核模块需要更新时,可以根据该插件存储地址从插件存储服务器下载目标核模块。When obtaining the version information of the target core module from the version management server, the plug-in storage address can also be obtained, and when it is determined that the current core module needs to be updated, the target core module can be downloaded from the plug-in storage server according to the plug-in storage address.
步骤103,将当前核模块更新为目标核模块。Step 103: Update the current core module to the target core module.
在下载目标核模块之后,可以删除应用程序的子目录下添加的当前核模块,并将目标核模块添加在应用程序的子目录下,应用程序在运行的时候,先执行应用程序的根目录下添加的目标插件的壳模块,然后通过反射机制找到目标核模块的入口,执行该目标核模块,从而实现插件的自动更新。After downloading the target kernel module, you can delete the current kernel module added in the subdirectory of the application program, and add the target kernel module to the subdirectory of the application program. When the application program is running, first execute the subdirectory of the application program. The shell module of the added target plug-in, and then finds the entry of the target core module through the reflection mechanism, and executes the target core module, thereby realizing the automatic update of the plug-in.
本申请实施例中,可以利用应用程序引用的目标插件的壳模块确定目标插件的当前核模块是否需要更新,在确定当前核模块需要更新时,下载目标插件的目标核模块,将当前核模块更新为目标核模块。即本申请实施例中,插件包括壳模块和核模块,利用插件的壳模块检查核模块是否需要更新,当需要更新时,自动下载核模块并更新,壳模块保持不变,从而实现了插件的自动更新,避免了更新过程需要用户手动操作,提高了更新效率。In the embodiment of the present application, the shell module of the target plug-in referenced by the application program can be used to determine whether the current core module of the target plug-in needs to be updated. When it is determined that the current core module needs to be updated, the target core module of the target plug-in is downloaded, and the current core module is updated. is the target kernel module. That is, in the embodiment of the present application, the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated. The automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.
另外,由于插件为壳模块+核模块的结构,插件更新只需要更新插件的核模块,在插件大规模对外输出私有化部署时,只需与不同的团队沟通核模块的更新,不需要重新与多个团队沟通修改插件代码并通知不同的团队修改版本信息,降低了维护成本。In addition, because the plug-in is a shell module + core module structure, the plug-in update only needs to update the core module of the plug-in. When the plug-in is deployed on a large scale, it only needs to communicate with different teams about the update of the core module, and there is no need to reconnect with the plug-in. Multiple teams communicate and modify plug-in code and notify different teams to modify version information, reducing maintenance costs.
相关技术中,在插件输出对外私有化部署时,出于安全考量,对外不开放插件源码,只提供混淆的插件jar包,但是用户需要根据私有化部署环境,定制化一些参数,比如,定制私有化部署的版本管理服务器相关信息,存储二进制 依赖的私有化插件存储服务器的相关信息等等。相关的解决方案通常为:针对不同客户重新修改插件源码,然后重新打包生成新的插件对外输出,这种方式不仅繁琐而且运维成本高,需要同外部团队进行频繁的沟通,针对这一问题,本申请实施例也提供了对应的解决方案,下面结合图2进行说明。In the related technology, when the plug-in output is deployed in privatization, for security reasons, the plug-in source code is not open to the outside world, and only the obfuscated plug-in jar package is provided, but the user needs to customize some parameters according to the privatization deployment environment, for example, customizing the private Information about the version management server of the deployment, information about the privatized plug-in storage server that stores binary dependencies, and so on. The relevant solution is usually: re-modify the plug-in source code for different customers, and then repackage to generate a new plug-in for external output. This method is not only cumbersome but also has high operation and maintenance costs, and requires frequent communication with external teams. In response to this problem, The embodiments of the present application also provide corresponding solutions, which are described below with reference to FIG. 2 .
如图2所示,在私有化部署场景下,以插件为Gradle插件为例,本申请实施例提供的另一种插件更新方法包括如下步骤:As shown in FIG. 2 , in a privatized deployment scenario, taking the plugin as a Gradle plugin as an example, another plugin update method provided by this embodiment of the present application includes the following steps:
步骤201,从预设部署界面获取配置的版本管理地址和插件存储地址。Step 201: Obtain the configured version management address and plug-in storage address from a preset deployment interface.
开发人员可以开发原始Gradle插件,原始Gradle插件由壳模块和核模块构成,壳模块具有对应的壳模块jar包,核模块具有对应的核模块jar包,其中,核模块的jar包可以以混淆代码的形式提供。在对外输出私有化部署时,除了对用户提供(比如可以通过邮件、硬盘等形式)原始Gradle插件,还可以为用户提供插件部署工具、插件对应的依赖文件pom文件等。Developers can develop the original Gradle plugin. The original Gradle plugin consists of a shell module and a core module. The shell module has a corresponding shell module jar package, and the core module has a corresponding core module jar package. The jar package of the core module can be used to obfuscate the code. provided in the form of. When exporting privatized deployment, in addition to providing users with the original Gradle plug-in (for example, through email, hard disk, etc.), it can also provide users with plug-in deployment tools, and the plug-in's corresponding dependency file pom file.
用户可以在电子设备上安装该插件部署工具,电子设备上可以呈现预设部署界面,在一实施例中,预设部署界面可如图3所示,包括版本管理服务器(比如可以是Paas服务器)、插件存储服务器(比如可以是Maven服务器)的可配置项,插件存储服务器的可配置项例如插件存储服务器的地址(即插件存储地址)、用户名、密码,版本管理服务器的可配置项例如版本管理服务器的地址(即版本管理地址)。当然,预设部署界面还可以包括其他信息,例如插件壳模块的版本号、核模块的版本号、pom文件信息等。The user can install the plug-in deployment tool on the electronic device, and a preset deployment interface can be presented on the electronic device. In one embodiment, the preset deployment interface can be as shown in FIG. 3, including a version management server (such as a Paas server) , Configurable items of the plug-in storage server (such as a Maven server), configurable items of the plug-in storage server, such as the address of the plug-in storage server (that is, the plug-in storage address), user name, password, Configurable items of the version management server such as version The address of the management server (ie, the version management address). Of course, the preset deployment interface may also include other information, such as the version number of the plug-in shell module, the version number of the core module, and pom file information.
用户可以在预设部署界面进行相关参数的配置,配置完成后,电子设备从预设部署界面获取配置的版本管理地址和插件存储地址,将版本管理地址和插件存储地址通过jar命令行写入原始Gradle插件的壳模块的配置文件,得到目标Gradle插件。其中,原始Gradle插件的壳模块的配置文件可以有默认配置的版本管理地址和插件存储地址等信息,在写入时,可以将默认配置修改为用户配置。Users can configure related parameters on the preset deployment interface. After the configuration is complete, the electronic device obtains the configured version management address and plug-in storage address from the preset deployment interface, and writes the version management address and plug-in storage address into the original through the jar command line. The configuration file of the Gradle plugin's shell module to get the target Gradle plugin. Among them, the configuration file of the shell module of the original Gradle plug-in can have information such as the version management address of the default configuration and the storage address of the plug-in. When writing, the default configuration can be modified to the user configuration.
在一实施例中,用户配置的相关实现逻辑代码可如下:In one embodiment, the relevant implementation logic code configured by the user may be as follows:
Figure PCTCN2021139156-appb-000001
Figure PCTCN2021139156-appb-000001
Figure PCTCN2021139156-appb-000002
Figure PCTCN2021139156-appb-000002
步骤202,将版本管理地址和插件存储地址写入原始插件的壳模块的配置文件,得到目标插件。Step 202: Write the version management address and the plug-in storage address into the configuration file of the shell module of the original plug-in to obtain the target plug-in.
目标Gradle插件的壳模块与原始Gradle插件的壳模块不同,但二者的核模块相同。The shell module of the target Gradle plugin is different from the shell module of the original Gradle plugin, but the core module is the same for both.
步骤203,将目标插件上传至插件存储服务器。 Step 203, uploading the target plug-in to the plug-in storage server.
比如,用户点击预设部署界面的发布按钮需要将插件发布时,电子设备可以从预设部署界面获取插件壳模块的版本号、核模块的版本号、pom文件信息等,通过Gradle的maven-publish将目标Gradle插件发布到插件存储服务器,以供其他用户使用。For example, when the user clicks the publish button of the preset deployment interface and needs to publish the plug-in, the electronic device can obtain the version number of the plug-in shell module, the version number of the core module, the pom file information, etc. from the preset deployment interface, and use Gradle's maven-publish Publish the target Gradle plugin to the plugin storage server for use by other users.
步骤204,根据用户操作在应用程序的根目录下添加目标插件的壳模块的版本信息。Step 204: Add version information of the shell module of the target plug-in in the root directory of the application according to the user operation.
比如,当需要在应用程序中引用目标Gradle插件时,可以通过用户操作在应用程序的根目录(比如:根目录的build.gradle文件下)下添加目标Gradle插件的壳模块的版本信息,比如:myplugin_shell:1.0。For example, when the target Gradle plugin needs to be referenced in the application, the version information of the shell module of the target Gradle plugin can be added under the root directory of the application (for example, under the build.gradle file in the root directory) through user operations, such as: myplugin_shell: 1.0.
步骤205,根据目标插件的壳模块的版本信息在应用程序的根目录下添加目标插件的壳模块,并在应用程序的子目录下添加当前核模块。 Step 205 , according to the version information of the shell module of the target plug-in, add the shell module of the target plug-in in the root directory of the application, and add the current core module in the subdirectory of the application.
在应用程序初始化时,例如图4所示,可以根据添加的版本信息自动从插件存储服务器下载目标Gradle插件的壳模块(比如:myplugin_shell:1.0的jar包)和当前核模块(比如:myplugin_core_1.0的jar包),将下载的目标Gradle插件的壳模块自动添加在应用程序的根目录(比如:根目录的build.gradle文件下)下,并将下载的目标Gradle插件的当前核模块自动添加在应用程序的子目录(比如.gradle目录)下,应用程序在运行的时候,可以执行子目录下的当前 核模块,以实现相关功能。When the application is initialized, as shown in Figure 4, the shell module of the target Gradle plugin (for example: myplugin_shell: 1.0 jar package) and the current core module (for example: myplugin_core_1.0) can be automatically downloaded from the plugin storage server according to the added version information jar package), automatically add the shell module of the downloaded target Gradle plugin to the root directory of the application (for example, under the build.gradle file in the root directory), and automatically add the current core module of the downloaded target Gradle plugin to the root directory of the application Under the subdirectory of the application (such as the .gradle directory), when the application is running, the current kernel module in the subdirectory can be executed to achieve related functions.
步骤206,利用目标插件的壳模块确定当前核模块的版本信息。 Step 206, using the shell module of the target plug-in to determine the version information of the current kernel module.
比如,可以利用目标Gradle插件的壳模块读取应用程序的子目录下的当前核模块的jar包文件,解析文件名得到当前核模块的版本信息。For example, the shell module of the target Gradle plug-in can be used to read the jar package file of the current core module in the subdirectory of the application, and parse the file name to obtain the version information of the current core module.
步骤207,从目标插件的壳模块的配置文件中获取版本管理地址。Step 207: Obtain the version management address from the configuration file of the shell module of the target plug-in.
比如,可以从目标插件的壳模块的配置文件中获取版本管理地址,根据版本管理地址从版本管理服务器获取目标核模块的版本信息,该配置文件例如可以是Manifest.MF文件。For example, the version management address may be obtained from the configuration file of the shell module of the target plug-in, and the version information of the target core module may be obtained from the version management server according to the version management address. The configuration file may be, for example, a Manifest.MF file.
步骤208,根据版本管理地址从版本管理服务器获取目标核模块的版本信息和插件存储地址。Step 208: Acquire the version information and plug-in storage address of the target core module from the version management server according to the version management address.
在一实施例中,从版本管理服务器获取的数据的数据格式如下:In one embodiment, the data format of the data obtained from the version management server is as follows:
Figure PCTCN2021139156-appb-000003
Figure PCTCN2021139156-appb-000003
步骤209,根据当前核模块的版本信息和目标核模块的版本信息确定当前核模块是否需要更新,若当前核模块需要更新,则执行步骤210,若当前核模块不需要更新,则执行步骤212结束处理。 Step 209, determine whether the current nuclear module needs to be updated according to the version information of the current nuclear module and the version information of the target nuclear module, if the current nuclear module needs to be updated, then execute step 210, if the current nuclear module does not need to be updated, then execute step 212 to end deal with.
比如,目标核模块的版本信息为myplugin_core_2.0,当前核模块的版本信息为myplugin_core_1.0,则可以确定目标核模块的版本高于当前核模块的版本,当前核模块需要更新。For example, if the version information of the target core module is myplugin_core_2.0 and the version information of the current core module is myplugin_core_1.0, it can be determined that the version of the target core module is higher than that of the current core module, and the current core module needs to be updated.
步骤210,根据插件存储地址从插件存储服务器下载目标核模块。Step 210: Download the target core module from the plug-in storage server according to the plug-in storage address.
步骤211,将当前核模块更新为目标核模块。 Step 211, update the current core module to the target core module.
在下载目标核模块之后,可以删除应用程序的子目录下添加的当前核模块,并将目标核模块添加在应用程序的子目录下,应用程序在运行的时候,先执行应用程序的根目录下添加的目标插件的壳模块,然后通过反射机制找到目标核模块的入口,执行该目标核模块,从而实现插件的自动更新。After downloading the target kernel module, you can delete the current kernel module added in the subdirectory of the application program, and add the target kernel module to the subdirectory of the application program. When the application program is running, first execute the subdirectory of the application program. The shell module of the added target plug-in, and then finds the entry of the target core module through the reflection mechanism, and executes the target core module, thereby realizing the automatic update of the plug-in.
步骤212,结束。 Step 212, end.
当插件私有化部署时,目标插件为对开发人员开发的原始插件进行动态参数配置后得到的插件,对应地,本实施例提及的用户对开发人员来说,相当于 是客户,版本管理服务器及插件存储服务器均为客户方的服务器。When the plug-in is privatized and deployed, the target plug-in is the plug-in obtained by dynamically configuring the original plug-in developed by the developer. Correspondingly, the user mentioned in this embodiment is equivalent to the client, the version management server and the developer for the developer. Plug-in storage servers are all client-side servers.
本申请实施例中,在插件私有化部署时,可以利用应用程序引用的目标插件的壳模块确定目标插件的当前核模块是否需要更新,在确定当前核模块需要更新时,下载目标插件的目标核模块,将当前核模块更新为目标核模块。即本申请实施例中,插件包括壳模块和核模块,利用插件的壳模块检查核模块是否需要更新,当需要更新时,自动下载核模块并更新,壳模块保持不变,从而实现了插件的自动更新,避免了更新过程需要用户手动操作,提高了更新效率。In the embodiment of the present application, when the plug-in is deployed privately, the shell module of the target plug-in referenced by the application can be used to determine whether the current core module of the target plug-in needs to be updated, and when it is determined that the current core module needs to be updated, the target core module of the target plug-in is downloaded. module to update the current kernel module to the target kernel module. That is, in the embodiment of the present application, the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated. The automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.
可以从预设部署界面获取配置的版本管理地址和插件存储地址,将版本管理地址和插件存储地址写入原始插件的壳模块的配置文件,得到目标插件,即在插件对外私有化部署时,将定制化参数通过私有化部署界面(即预设部署界面)暴露给用户自行管理,通过私有化部署界面获取定制化参数,从而实现插件定制化,从而降低了插件的部署和升级的运维成本,插件更新只需要更新核模块,开发人员可以专注于核模块的设计,降低了插件的开发和运维成本。You can obtain the configured version management address and plug-in storage address from the preset deployment interface, write the version management address and plug-in storage address into the configuration file of the shell module of the original plug-in, and obtain the target plug-in, that is, when the plug-in is deployed privately, the Customized parameters are exposed to users for self-management through the privatized deployment interface (that is, the preset deployment interface), and customized parameters are obtained through the privatized deployment interface, so as to realize the customization of the plug-in, thereby reducing the operation and maintenance cost of the deployment and upgrade of the plug-in. The plug-in update only needs to update the core module, and developers can focus on the design of the core module, which reduces the development and operation and maintenance costs of the plug-in.
在一实施例中,在非私有化部署场景下,以插件为Gradle插件为例,如图5所示,本申请实施例提供的又一种插件更新方法包括如下步骤:In one embodiment, in a non-privatized deployment scenario, taking the plugin as a Gradle plugin as an example, as shown in FIG. 5 , another method for updating a plugin provided by an embodiment of the present application includes the following steps:
步骤301,根据用户操作在应用程序的根目录下添加目标插件的壳模块的版本信息。Step 301: Add version information of the shell module of the target plug-in in the root directory of the application according to the user operation.
示例地,本实施例的Gradle插件仍由壳模块和核模块构成,开发人员可以将开发好的原始Gradle插件(也即目标Gradle插件)上传至插件存储服务器。比如,当需要在应用程序中引用目标Gradle插件时,可以通过用户操作在应用程序的根目录(比如:比如根目录的build.gradle文件下)下添加目标Gradle插件的壳模块的版本信息,比如:myplugin_shell:1.0。For example, the Gradle plug-in in this embodiment is still composed of a shell module and a core module, and the developer can upload the developed original Gradle plug-in (that is, the target Gradle plug-in) to the plug-in storage server. For example, when the target Gradle plugin needs to be referenced in the application, the version information of the shell module of the target Gradle plugin can be added under the root directory of the application (for example, under the build.gradle file in the root directory) through user operations, such as :myplugin_shell:1.0.
步骤302,根据目标插件的壳模块的版本信息从插件存储服务器下载目标插件的壳模块和当前核模块。 Step 302, download the shell module and the current core module of the target plug-in from the plug-in storage server according to the version information of the shell module of the target plug-in.
步骤303,在应用程序的根目录下添加目标插件的壳模块,并在应用程序的子目录下添加当前核模块。 Step 303, add the shell module of the target plug-in in the root directory of the application, and add the current kernel module in the subdirectory of the application.
比如,可以将下载的目标Gradle插件的壳模块添加在应用程序的根目录(比如:根目录的build.gradle文件)下,并将下载的目标Gradle插件的当前核模块添加在应用程序的子目录(比如.gradle目录)下,应用程序在运行的时候,可以执行子目录下的当前核模块,以实现相关功能。For example, the shell module of the downloaded target Gradle plugin can be added to the root directory of the application (for example, the build.gradle file in the root directory), and the current core module of the downloaded target Gradle plugin can be added to the subdirectory of the application (such as the .gradle directory), when the application is running, it can execute the current kernel module in the subdirectory to achieve related functions.
步骤304,利用目标插件的壳模块确定当前核模块的版本信息。 Step 304, using the shell module of the target plug-in to determine the version information of the current core module.
比如,可以利用目标Gradle插件的壳模块读取应用程序的子目录下的当前核模块的jar包文件,解析文件名得到当前核模块的版本信息。For example, the shell module of the target Gradle plug-in can be used to read the jar package file of the current core module in the subdirectory of the application, and parse the file name to obtain the version information of the current core module.
步骤305,从目标插件的壳模块的配置文件中获取版本管理地址。Step 305: Obtain the version management address from the configuration file of the shell module of the target plug-in.
示例地,该配置文件例如可以是Manifest.MF文件。Illustratively, the configuration file may be a Manifest.MF file, for example.
步骤306,根据版本管理地址从版本管理服务器获取目标核模块的版本信息和插件存储地址。Step 306: Acquire the version information of the target core module and the plug-in storage address from the version management server according to the version management address.
步骤307,根据当前核模块的版本信息和目标核模块的版本信息确定当前核模块是否需要更新,若当前核模块需要更新,则执行步骤308,若当前核模块不需要更新,则执行步骤310结束处理。Step 307: Determine whether the current core module needs to be updated according to the version information of the current core module and the version information of the target core module, if the current core module needs to be updated, then execute step 308, if the current core module does not need to be updated, then execute step 310 to end deal with.
比如,目标核模块的版本信息为myplugin_core_2.0,当前核模块的版本信息为myplugin_core_1.0,则可以确定目标核模块的版本高于当前核模块的版本,当前核模块需要更新。For example, if the version information of the target core module is myplugin_core_2.0 and the version information of the current core module is myplugin_core_1.0, it can be determined that the version of the target core module is higher than that of the current core module, and the current core module needs to be updated.
步骤308,根据插件存储地址从插件存储服务器下载目标核模块。 Step 308, download the target core module from the plug-in storage server according to the plug-in storage address.
步骤309,将当前核模块更新为目标核模块。 Step 309, update the current core module to the target core module.
在下载目标核模块之后,可以删除应用程序的子目录下添加的当前核模块,并将目标核模块添加在应用程序的子目录下,应用程序在运行的时候,先执行应用程序的根目录下添加的目标插件的壳模块,然后通过反射机制找到目标核模块的入口,执行该目标核模块,从而实现插件的自动更新。After downloading the target kernel module, you can delete the current kernel module added in the subdirectory of the application program, and add the target kernel module to the subdirectory of the application program. When the application program is running, first execute the subdirectory of the application program. The shell module of the added target plug-in, and then finds the entry of the target core module through the reflection mechanism, and executes the target core module, thereby realizing the automatic update of the plug-in.
步骤310,结束。 Step 310, end.
当插件非私有化部署时,目标插件就是开发人员开发的原始插件,对应地,本实施例提及的用户对开发人员来说,相当于是内部用户,版本管理服务器及插件存储服务器均为内部的服务器。When the plug-in is deployed in a non-privatized manner, the target plug-in is the original plug-in developed by the developer. Correspondingly, the user mentioned in this embodiment is equivalent to an internal user to the developer. The version management server and the plug-in storage server are both internal server.
本申请实施例中,在插件非私有化部署时,可以利用应用程序引用的目标插件的壳模块确定目标插件的当前核模块是否需要更新,在确定当前核模块需要更新时,下载目标插件的目标核模块,将当前核模块更新为目标核模块。即本申请实施例中,插件包括壳模块和核模块,利用插件的壳模块检查核模块是否需要更新,当需要更新时,自动下载核模块并更新,壳模块保持不变,从而实现了插件的自动更新,避免了更新过程需要用户手动操作,提高了更新效率。In the embodiment of the present application, when the plug-in is deployed without privatization, the shell module of the target plug-in referenced by the application can be used to determine whether the current core module of the target plug-in needs to be updated, and when it is determined that the current core module needs to be updated, the target plug-in's target plug-in is downloaded. kernel module, update the current kernel module to the target kernel module. That is, in the embodiment of the present application, the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated. The automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.
插件更新只需要更新核模块,开发人员可以专注于核模块的设计,降低了插件的开发和运维成本。The plug-in update only needs to update the core module, and developers can focus on the design of the core module, which reduces the development and operation and maintenance costs of the plug-in.
虽然图2、5的流程图中的多个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有说明,这些步骤的 执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。Although a plurality of steps in the flowcharts of FIGS. 2 and 5 are displayed in sequence according to the arrows, these steps are not necessarily executed in the sequence indicated by the arrows. Unless stated herein, the steps are not strictly limited to the order in which they are performed, and the steps may be performed in other orders. Moreover, at least a part of the steps in FIGS. 2 and 5 may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but may be executed at different times. These sub-steps or stages are not necessarily completed at the same time. The order of execution of the steps is not necessarily sequential, but may be performed alternately or alternately with other steps or at least a part of sub-steps or stages of other steps.
本公开实施例所示出的界面示意图旨在说明敏感函数的检测插件部署方法,界面呈现的内容(包括但不限于文字、图片等)不构成对方案的限定。The schematic interface diagrams shown in the embodiments of the present disclosure are intended to illustrate a method for deploying a detection plug-in for sensitive functions, and the content (including but not limited to text, pictures, etc.) presented on the interface does not constitute a limitation on the solution.
图6是本申请实施例提供的一种插件更新装置的结构图,该装置适用于执行本申请实施例提供的插件更新方法。如图6所示,该装置可以包括:FIG. 6 is a structural diagram of a plug-in updating apparatus provided by an embodiment of the present application, and the apparatus is suitable for executing the plug-in updating method provided by the embodiment of the present application. As shown in Figure 6, the apparatus may include:
确定模块401,设置为利用应用程序引用的目标插件的壳模块确定所述目标插件的当前核模块是否需要更新;下载模块402,设置为在确定所述当前核模块需要更新时,下载所述目标插件的目标核模块;更新模块403,设置为将所述当前核模块更新为所述目标核模块。The determining module 401 is configured to use the shell module of the target plug-in referenced by the application to determine whether the current core module of the target plug-in needs to be updated; the downloading module 402 is configured to download the target when it is determined that the current core module needs to be updated The target core module of the plug-in; the update module 403 is configured to update the current core module to the target core module.
一实施例中,所述确定模块401设置为:In one embodiment, the determining module 401 is configured to:
利用所述目标插件的壳模块确定所述当前核模块的版本信息;从版本管理服务器获取所述目标核模块的版本信息;在所述目标核模块的版本信息表示的版本高于所述当前核模块的版本信息表示的版本时,确定所述当前核模块需要更新。Use the shell module of the target plug-in to determine the version information of the current core module; obtain the version information of the target core module from a version management server; the version indicated by the version information of the target core module is higher than the current core module When the version indicated by the version information of the module is determined, it is determined that the current core module needs to be updated.
一实施例中,所述确定模块401设置为通过如下方式从版本管理服务器获取所述目标核模块的版本信息:In one embodiment, the determining module 401 is configured to obtain the version information of the target core module from the version management server in the following manner:
从所述目标插件的壳模块的配置文件中获取版本管理地址;根据所述版本管理地址从所述版本管理服务器获取所述目标核模块的版本信息。The version management address is obtained from the configuration file of the shell module of the target plug-in; the version information of the target core module is obtained from the version management server according to the version management address.
一实施例中,所述确定模块401还设置为:在从所述版本管理服务器获取所述目标核模块的版本信息时,从所述版本管理服务器获取插件存储地址。In one embodiment, the determining module 401 is further configured to: when acquiring the version information of the target core module from the version management server, acquire the plug-in storage address from the version management server.
所述下载模块402设置为通过如下方式下载所述目标插件的目标核模块:The download module 402 is configured to download the target core module of the target plug-in in the following manner:
根据所述插件存储地址从插件存储服务器下载所述目标核模块。The target kernel module is downloaded from the plug-in storage server according to the plug-in storage address.
一实施例中,所述目标插件通过如下方式得到:In one embodiment, the target plug-in is obtained in the following manner:
从预设部署界面获取配置的所述版本管理地址和所述插件存储地址;将所述版本管理地址和所述插件存储地址写入原始插件的壳模块的配置文件,得到所述目标插件。Obtain the configured version management address and the plug-in storage address from the preset deployment interface; write the version management address and the plug-in storage address into the configuration file of the shell module of the original plug-in to obtain the target plug-in.
一实施例中,所述装置还包括:In one embodiment, the device further includes:
上传模块,设置为将所述目标插件上传至所述插件存储服务器。The uploading module is configured to upload the target plug-in to the plug-in storage server.
一实施例中,所述应用程序通过如下方式引用所述目标插件:In one embodiment, the application program references the target plug-in in the following manner:
根据用户操作在所述应用程序的根目录下添加所述目标插件的壳模块的版本信息;根据所述目标插件的壳模块的版本信息在所述根目录下添加所述目标插件的壳模块,并在所述应用程序的子目录下添加所述当前核模块。The version information of the shell module of the target plug-in is added under the root directory of the application program according to the user operation; the shell module of the target plug-in is added under the root directory according to the version information of the shell module of the target plug-in, And add the current kernel module in the subdirectory of the application.
本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述多个功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述功能模块的工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that, for the convenience and conciseness of the description, only the division of the above-mentioned multiple functional modules is used for illustration. That is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. For the working processes of the functional modules described above, reference may be made to the corresponding processes in the foregoing method embodiments, and details are not described herein again.
本申请实施例的装置,可以利用应用程序引用的目标插件的壳模块确定目标插件的当前核模块是否需要更新,在确定当前核模块需要更新时,下载目标插件的目标核模块,将当前核模块更新为目标核模块。即本申请实施例中,插件包括壳模块和核模块,利用插件的壳模块检查核模块是否需要更新,当需要更新时,自动下载核模块并更新,壳模块保持不变,从而实现了插件的自动更新,避免了更新过程需要用户手动操作,提高了更新效率。将插件设计成壳模块和核模块的形式,插件更新只需要更新核模块,开发人员可以专注于核模块的设计,降低了插件的开发和运维成本。The device of the embodiment of the present application can use the shell module of the target plug-in referenced by the application program to determine whether the current core module of the target plug-in needs to be updated, when it is determined that the current core module needs to be updated, the target core module of the target plug-in is downloaded, and the current core module Update to target kernel module. That is, in the embodiment of the present application, the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated. The automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency. The plug-in is designed in the form of a shell module and a core module. The plug-in update only needs to update the core module. Developers can focus on the design of the core module, which reduces the development and operation and maintenance costs of the plug-in.
另外,由于插件为壳模块+核模块的结构,插件更新只需要更新插件的核模块,在插件大规模对外输出私有化部署时,只需与不同的团队沟通核模块的更新,不需要重新与多个团队沟通修改插件代码并通知不同的团队修改版本信息,降低了维护成本。In addition, because the plug-in is a shell module + core module structure, the plug-in update only needs to update the core module of the plug-in. When the plug-in is deployed on a large scale, it only needs to communicate with different teams about the update of the core module, and there is no need to reconnect with the plug-in. Multiple teams communicate and modify plug-in code and notify different teams to modify version information, reducing maintenance costs.
在插件对外私有化部署时,将定制化参数通过私有化部署界面(即预设部署界面)暴露给用户自行管理,通过私有化部署界面获取定制化参数,从而实现插件定制化,从而降低了插件的部署和升级的运维成本。When the plug-in is privatized and deployed externally, the customized parameters are exposed to the user through the privatized deployment interface (ie, the preset deployment interface) for self-management, and the customized parameters are obtained through the privatized deployment interface, so as to realize the customization of the plug-in and reduce the number of plug-ins. deployment and upgrade operation and maintenance costs.
本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例提供的插件更新方法。Embodiments of the present application further provide an electronic device, including a memory, a processor, and a computer program stored on the memory and running on the processor, where the processor implements any of the above when executing the program The plug-in update method provided by the embodiment.
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的插件更新方法。Embodiments of the present application further provide a computer-readable medium on which a computer program is stored, and when the program is executed by a processor, implements the plug-in update method provided by any of the foregoing embodiments.
本申请实施例还提供了一种插件更新系统,如图7所示,包括版本管理服务器501、插件存储服务器502以及设置为执行如本申请实施例任一所述的插件更新方法的电子设备503,多个设备间的交互可参阅前面实施例的描述,此处不 再赘述。An embodiment of the present application further provides a plug-in update system, as shown in FIG. 7 , including a version management server 501, a plug-in storage server 502, and an electronic device 503 configured to execute the plug-in update method described in any of the embodiments of the present application , the interaction between multiple devices can be referred to the description of the previous embodiment, which is not repeated here.
下面参考图8,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。图8示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。Referring next to FIG. 8 , it shows a schematic structural diagram of a computer system 600 suitable for implementing the electronic device of the embodiment of the present application. The electronic device shown in FIG. 8 is only an example, and should not impose any limitations on the functions and scope of use of the embodiments of the present application.
如图8所示,计算机系统600包括中央处理单元(Central Processing Unit,CPU)601,其可以根据存储在只读存储器(Read-Only Memory,ROM)602中的程序或者从存储部分608加载到随机访问存储器(Random Access Memory,RAM)603中的程序而执行多种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的多种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(Input/Output,I/O)接口605也连接至总线604。As shown in FIG. 8 , the computer system 600 includes a central processing unit (Central Processing Unit, CPU) 601, which can be loaded into a random device according to a program stored in a read-only memory (Read-Only Memory, ROM) 602 or from a storage part 608 A program in Random Access Memory (RAM) 603 is accessed to perform various appropriate actions and processes. In the RAM 603, various programs and data required for the operation of the system 600 are also stored. The CPU 601, the ROM 602, and the RAM 603 are connected to each other through a bus 604. An Input/Output (I/O) interface 605 is also connected to the bus 604 .
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如局域网(Local Area Network,LAN)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。The following components are connected to the I/O interface 605: an input section 606 including a keyboard, a mouse, etc.; an output section 607 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc. ; a storage section 608 including a hard disk, etc.; and a communication section 609 including a network interface card such as a local area network (Local Area Network, LAN) card, a modem, and the like. The communication section 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the I/O interface 605 as needed. A removable medium 611, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is mounted on the drive 610 as needed so that a computer program read therefrom is installed into the storage section 608 as needed.
根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被CPU601执行时,执行本申请的系统中限定的上述功能。According to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments disclosed herein include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the method illustrated in the flowchart. In such an embodiment, the computer program may be downloaded and installed from the network via the communication portion 609 and/or installed from the removable medium 611 . When the computer program is executed by the CPU 601, the above-described functions defined in the system of the present application are executed.
本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、可擦式可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信 号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。The computer-readable medium shown in this application may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the above two. The computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus or device, or a combination of any of the above. Examples of computer-readable storage media may include, but are not limited to, electrical connections with one or more wires, portable computer disks, hard disks, RAM, ROM, Erasable Programmable Read-Only Memory (EPROM) or flash memory), optical fiber, portable compact disk read-only memory (Compact Disc Read-Only Memory, CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above. In this application, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this application, however, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code therein. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing. A computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium that can transmit, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device . The program code embodied on the computer readable medium may be transmitted by any suitable medium, including but not limited to: wireless, wire, optical fiber cable, radio frequency (RF), etc., or any suitable combination of the above.
附图中的流程图和框图,图示了按照本申请实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code that contains one or more logical functions for implementing the specified functions executable instructions. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It is also noted that each block of the block diagrams or flowchart illustrations, and combinations of blocks in the block diagrams or flowchart illustrations, can be implemented in special purpose hardware-based systems that perform the specified functions or operations, or can be implemented using A combination of dedicated hardware and computer instructions is implemented.
描述于本申请实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括确定模块、下载模块和更新模块。其中,这些模块的名称在一种情况下并不构成对该模块本身的限定。The modules and/or units involved in the embodiments of the present application may be implemented in a software manner, and may also be implemented in a hardware manner. The described modules and/or units can also be provided in the processor, for example, it can be described as: a processor includes a determination module, a download module and an update module. The names of these modules do not, in one case, constitute a limitation on the module itself.
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:利用应用程序引用的目标插件的壳模块确定所述目标插件的当前核模块是否需要更新;在确定所述当前核模块需要更新时,下载所述目标插件的目标核模块;将所述当前核模块更新为所述目标核模块。As another aspect, the present application also provides a computer-readable medium. The computer-readable medium may be included in the device described in the above embodiments, or may exist alone without being assembled into the device. The above-mentioned computer-readable medium carries one or more programs, and when the above-mentioned one or more programs are executed by a device, the device includes: determining the current core of the target plug-in using the shell module of the target plug-in referenced by the application program. Whether the module needs to be updated; when it is determined that the current core module needs to be updated, download the target core module of the target plug-in; update the current core module to the target core module.
根据本申请实施例的技术方案,可以利用应用程序引用的目标插件的壳模块确定目标插件的当前核模块是否需要更新,在确定当前核模块需要更新时,下载目标插件的目标核模块,将当前核模块更新为目标核模块。即本申请实施例中,插件包括壳模块和核模块,利用插件的壳模块检查核模块是否需要更新,当需要更新时,自动下载核模块并更新,壳模块保持不变,从而实现了插件的 自动更新,避免了更新过程需要用户手动操作,提高了更新效率。According to the technical solutions of the embodiments of the present application, the shell module of the target plug-in referenced by the application can be used to determine whether the current core module of the target plug-in needs to be updated. When it is determined that the current core module needs to be updated, the target core module of the target plug-in is downloaded, and the current The kernel module is updated to the target kernel module. That is, in the embodiment of the present application, the plug-in includes a shell module and a core module, and the shell module of the plug-in is used to check whether the core module needs to be updated. The automatic update avoids the need for manual operation of the user during the update process, and improves the update efficiency.

Claims (11)

  1. 一种插件更新方法,包括:A plugin update method, including:
    利用应用程序引用的目标插件的壳模块确定所述目标插件的当前核模块是否需要更新;Use the shell module of the target plug-in referenced by the application to determine whether the current core module of the target plug-in needs to be updated;
    在确定所述当前核模块需要更新的情况下,下载所述目标插件的目标核模块;Under the condition that it is determined that the current core module needs to be updated, download the target core module of the target plug-in;
    将所述当前核模块更新为所述目标核模块。The current kernel module is updated to the target kernel module.
  2. 根据权利要求1所述的插件更新方法,其中,所述利用应用程序引用的目标插件的壳模块确定所述目标插件的当前核模块是否需要更新,包括:The method for updating a plug-in according to claim 1, wherein determining whether the current core module of the target plug-in needs to be updated by using the shell module of the target plug-in referenced by the application program comprises:
    利用所述目标插件的壳模块确定所述当前核模块的版本信息;Use the shell module of the target plug-in to determine the version information of the current core module;
    从版本管理服务器获取所述目标核模块的版本信息;Obtain the version information of the target core module from the version management server;
    在所述目标核模块的版本信息表示的版本高于所述当前核模块的版本信息表示的版本的情况下,确定所述当前核模块需要更新。When the version indicated by the version information of the target core module is higher than the version indicated by the version information of the current core module, it is determined that the current core module needs to be updated.
  3. 根据权利要求2所述的插件更新方法,其中,所述从版本管理服务器获取所述目标核模块的版本信息,包括:The plug-in update method according to claim 2, wherein the acquiring the version information of the target core module from a version management server comprises:
    从所述目标插件的壳模块的配置文件中获取版本管理地址;Obtain the version management address from the configuration file of the shell module of the target plug-in;
    根据所述版本管理地址从所述版本管理服务器获取所述目标核模块的版本信息。Acquire the version information of the target core module from the version management server according to the version management address.
  4. 根据权利要求3所述的插件更新方法,在从所述版本管理服务器获取所述目标核模块的版本信息的情况下,还包括:The plug-in update method according to claim 3, in the case of acquiring the version information of the target core module from the version management server, further comprising:
    从所述版本管理服务器获取插件存储地址;Obtain the plug-in storage address from the version management server;
    所述下载所述目标插件的目标核模块,包括:The downloading of the target core module of the target plug-in includes:
    根据所述插件存储地址从插件存储服务器下载所述目标核模块。The target kernel module is downloaded from the plug-in storage server according to the plug-in storage address.
  5. 根据权利要求4所述的插件更新方法,其中,所述目标插件通过如下方式得到:The plug-in update method according to claim 4, wherein, the target plug-in is obtained in the following manner:
    从预设部署界面获取配置的所述版本管理地址和所述插件存储地址;Obtain the configured version management address and the plug-in storage address from the preset deployment interface;
    将所述版本管理地址和所述插件存储地址写入原始插件的壳模块的配置文件,得到所述目标插件。Write the version management address and the plug-in storage address into the configuration file of the shell module of the original plug-in to obtain the target plug-in.
  6. 根据权利要求5所述的插件更新方法,还包括:The plug-in update method according to claim 5, further comprising:
    将所述目标插件上传至所述插件存储服务器。uploading the target plug-in to the plug-in storage server.
  7. 根据权利要求1至6任一项所述的插件更新方法,其中,所述应用程序通过如下方式引用所述目标插件:The plug-in update method according to any one of claims 1 to 6, wherein the application program references the target plug-in in the following manner:
    根据用户操作在所述应用程序的根目录下添加所述目标插件的壳模块的版本信息;Add the version information of the shell module of the target plug-in under the root directory of the application according to the user operation;
    根据所述目标插件的壳模块的版本信息在所述根目录下添加所述目标插件的壳模块,并在所述应用程序的子目录下添加所述当前核模块。The shell module of the target plug-in is added under the root directory according to the version information of the shell module of the target plug-in, and the current kernel module is added under the subdirectory of the application program.
  8. 一种插件更新装置,包括:A plug-in update device, comprising:
    确定模块,设置为利用应用程序引用的目标插件的壳模块确定所述目标插件的当前核模块是否需要更新;determining module, set to utilize the shell module of the target plug-in referenced by the application program to determine whether the current core module of the target plug-in needs to be updated;
    下载模块,设置为在确定所述当前核模块需要更新的情况下,下载所述目标插件的目标核模块;a download module, configured to download the target core module of the target plug-in when it is determined that the current core module needs to be updated;
    更新模块,设置为将所述当前核模块更新为所述目标核模块。an update module, configured to update the current core module to the target core module.
  9. 一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的插件更新方法。An electronic device, comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, wherein the processor implements any one of claims 1 to 7 when the processor executes the program One of the described plugin update methods.
  10. 一种插件更新系统,包括版本管理服务器、插件存储服务器以及设置为执行如权利要求1至7中任一项所述的插件更新方法的电子设备。A plug-in update system includes a version management server, a plug-in storage server, and an electronic device configured to execute the plug-in update method according to any one of claims 1 to 7.
  11. 一种计算机可读存储介质,存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1至7中任一项所述的插件更新方法。A computer-readable storage medium storing a computer program, wherein when the program is executed by a processor, the plug-in updating method according to any one of claims 1 to 7 is implemented.
PCT/CN2021/139156 2021-03-01 2021-12-17 Plug-in updating method and apparatus, electronic device, system, and storage medium WO2022183810A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110226815.1A CN115080077A (en) 2021-03-01 2021-03-01 Plug-in updating method, device, electronic equipment, system and storage medium
CN202110226815.1 2021-03-01

Publications (1)

Publication Number Publication Date
WO2022183810A1 true WO2022183810A1 (en) 2022-09-09

Family

ID=83154993

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/139156 WO2022183810A1 (en) 2021-03-01 2021-12-17 Plug-in updating method and apparatus, electronic device, system, and storage medium

Country Status (2)

Country Link
CN (1) CN115080077A (en)
WO (1) WO2022183810A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102141922A (en) * 2010-01-29 2011-08-03 腾讯科技(深圳)有限公司 Micro kernel pluggable program application system and implementation method thereof
CN102571860A (en) * 2010-12-29 2012-07-11 北京新媒传信科技有限公司 Method, device and system for managing plug-in module
CN102789389A (en) * 2012-08-01 2012-11-21 深圳市茁壮网络股份有限公司 Plug-in version detecting and upgrading method and plug-in detector
US20140047429A1 (en) * 2012-08-10 2014-02-13 Adobe Systems Incorporated Directing plug-in updates for a software application to a target audience using manifest parameters
CN109144533A (en) * 2017-06-28 2019-01-04 北京嘀嘀无限科技发展有限公司 A kind of method, system and the computer installation of update and the load of application program
CN110879713A (en) * 2018-09-06 2020-03-13 山东华软金盾软件股份有限公司 Android-end strong encryption plug-in hot update management method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102141922A (en) * 2010-01-29 2011-08-03 腾讯科技(深圳)有限公司 Micro kernel pluggable program application system and implementation method thereof
CN102571860A (en) * 2010-12-29 2012-07-11 北京新媒传信科技有限公司 Method, device and system for managing plug-in module
CN102789389A (en) * 2012-08-01 2012-11-21 深圳市茁壮网络股份有限公司 Plug-in version detecting and upgrading method and plug-in detector
US20140047429A1 (en) * 2012-08-10 2014-02-13 Adobe Systems Incorporated Directing plug-in updates for a software application to a target audience using manifest parameters
CN109144533A (en) * 2017-06-28 2019-01-04 北京嘀嘀无限科技发展有限公司 A kind of method, system and the computer installation of update and the load of application program
CN110879713A (en) * 2018-09-06 2020-03-13 山东华软金盾软件股份有限公司 Android-end strong encryption plug-in hot update management method

Also Published As

Publication number Publication date
CN115080077A (en) 2022-09-20

Similar Documents

Publication Publication Date Title
US11762634B2 (en) Systems and methods for seamlessly integrating multiple products by using a common visual modeler
US10162624B1 (en) Web shell for dynamically generated cross-platform applications
US11934805B2 (en) Streamlined fast and efficient application building and customization systems and methods
WO2010113160A1 (en) A method and system for emulating desktop software applications in a mobile communication network
CN110554876A (en) Method and device for compiling android project
WO2020063252A1 (en) Method and device for isolating multiple version dependency
CN110895471A (en) Installation package generation method, device, medium and electronic equipment
WO2019029451A1 (en) Method for publishing mobile applications and electronic apparatus
CN108733370B (en) Stylized display method, device, terminal and storage medium of native APP
CN110928571A (en) Business program development method and device
CA2966157A1 (en) Monitoring a mobile device application
US9135001B2 (en) Dynamically configuring an integrated development environment
CN112394907A (en) Container-based delivery system construction method, application delivery method and delivery system
CN112416303A (en) Software development kit thermal restoration method and device and electronic equipment
Chowhan Hands-on Serverless Computing: Build, Run and Orchestrate Serverless Applications Using AWS Lambda, Microsoft Azure Functions, and Google Cloud Functions
WO2022183810A1 (en) Plug-in updating method and apparatus, electronic device, system, and storage medium
CN111782231A (en) Service deployment method and device
CN113377342A (en) Project construction method and device, electronic equipment and storage medium
WO2022199324A1 (en) Run-time communications protocol parameter adjustment in containerized applications
US11074071B1 (en) Emulation of an environment set by a sourced script written in a different scripting language
CN113805877A (en) Project engineering construction method and device based on IDEA plug-in
CN109271182B (en) Method and device for upgrading search engine
CN113448602A (en) Version updating method and device
CN116991355B (en) Method, system and device for supporting LED driving chip by modifying and iterating script
CN113805858B (en) Method and device for continuously deploying software developed by scripting language

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21928881

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 11.01.2024)