CN115904381A - Method and device for establishing dependency relationship and storage medium - Google Patents

Method and device for establishing dependency relationship and storage medium Download PDF

Info

Publication number
CN115904381A
CN115904381A CN202110952922.2A CN202110952922A CN115904381A CN 115904381 A CN115904381 A CN 115904381A CN 202110952922 A CN202110952922 A CN 202110952922A CN 115904381 A CN115904381 A CN 115904381A
Authority
CN
China
Prior art keywords
plug
dependency
ins
source code
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110952922.2A
Other languages
Chinese (zh)
Inventor
苟亚明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110952922.2A priority Critical patent/CN115904381A/en
Publication of CN115904381A publication Critical patent/CN115904381A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The application discloses a method and a device for establishing a dependency relationship and a storage medium. The method comprises the following steps: extracting rule information for plug-in preprocessing from a preset detection rule in response to a compiling instruction for at least two business plug-ins; when the dependency libraries in the dependency library set have version conflicts, taking the dependency library with the highest version as a target library based on the rule information, and compiling the resource source codes of at least two business plug-ins respectively by utilizing the target library; and when the resource source code of the residual service plug-ins fails to be compiled, copying the shared resources of the dependency base corresponding to the residual service plug-ins and the target base, and establishing the dependency relationship between the storage path of the shared resources and the non-shared resources in the dependency base corresponding to the residual service plug-ins. The method and the device automatically establish the dependency relationship by utilizing the rule information, and improve the efficiency of analyzing the dependency of the plug-in. By means of the established dependency relationship, convenience of positioning problems during abnormal troubleshooting is improved, and development efficiency is improved.

Description

Method and device for establishing dependency relationship and storage medium
Technical Field
The present application relates to the field of internet communication technologies, and in particular, to a method and an apparatus for establishing a dependency relationship, and a storage medium.
Background
With the rapid development of internet communication technology, internet products are in endlessly growing. The development link for internet products is concerned as an important link. Plug-ins are often used to assist in the development process. The premise for realizing the plug-in function is to download and install the plug-in. In the related art, a hook function for calling a plug-in manager is set, and when a plug-in needs to be acquired, the hook function is executed to call the plug-in manager, so that the related plug-ins are downloaded and installed through the plug-in manager. However, if there are interdependencies (for example, the compiling of the plug-in often uses the dependent libraries, and the dependent libraries used by the two plug-ins conflict in version), the plug-in needs to be manually resolved. And the timeliness of analyzing the dependence of the plug-in is important for the abnormal investigation of the development link. And manual analysis depends on workers, so that the workload is large, the labor cost is high, and the efficiency of establishing the dependency relationship by analyzing the dependence of the plug-in is low. Therefore, there is a need to provide a more efficient dependency establishment scheme.
Disclosure of Invention
In order to solve the problems of low efficiency and the like when the prior art is applied to analyzing the dependency of the plug-in for establishing the dependency, the application provides a method and a device for establishing the dependency and a storage medium, wherein the method comprises the following steps:
according to a first aspect of the present application, there is provided a method for establishing a dependency relationship, the method including:
extracting rule information for plug-in preprocessing from a preset detection rule in response to a compiling instruction for at least two business plug-ins; the preset detection rule is obtained by compiling a preset source code file stored in a compiler directory;
respectively determining the dependency libraries corresponding to the at least two service plug-ins to obtain a dependency library set;
when the dependency libraries in the dependency library set have version conflicts, taking the dependency library with the highest version in the dependency library set as a target library based on the rule information, and compiling the resource source codes of the at least two service plug-ins respectively by using the target library;
when the resource source code compiling of the residual service plug-ins fails, copying the common resources of the dependency base corresponding to the residual service plug-ins and the target base, and establishing the dependency relationship between the storage path of the common resources and the non-common resources in the dependency base corresponding to the residual service plug-ins; and the dependency libraries corresponding to the residual service plug-ins are residual dependency libraries except the target library in the dependency library set.
According to a second aspect of the present application, there is provided an apparatus for establishing a dependency relationship, the apparatus comprising:
a rule information extraction module: the system comprises a module for responding to a compiling instruction aiming at least two business plug-ins, and extracting rule information for plug-in preprocessing from a preset detection rule; the preset detection rule is obtained by compiling a preset source code file stored in a compiler directory;
a dependent library set obtaining module: the dependency libraries are used for respectively determining the dependency libraries corresponding to the at least two business plug-ins to obtain a dependency library set;
a compiling module: the system comprises a dependency library set and a target library, wherein the dependency library set comprises a plurality of dependency libraries, and the target library is used for compiling resource source codes of at least two business plug-ins respectively;
a dependency relationship establishing module: the system comprises a database, a target database and a plurality of service plug-ins, wherein the database is used for storing the resource source codes of the service plug-ins, and the target database is used for storing the resource source codes of the service plug-ins; and the dependency libraries corresponding to the residual service plug-ins are residual dependency libraries except the target library in the dependency library set.
According to a third aspect of the present application, there is provided an electronic device, which includes a processor and a memory, where at least one instruction or at least one program is stored in the memory, and the at least one instruction or the at least one program is loaded and executed by the processor to implement the method for establishing a dependency relationship according to the first aspect.
According to a fourth aspect of the present application, a computer-readable storage medium is provided, in which at least one instruction or at least one program is stored, and the at least one instruction or the at least one program is loaded by a processor and executed to implement the method for establishing a dependency relationship according to the first aspect.
According to a fifth aspect of the present application, there is provided a computer program product or computer program comprising computer instructions stored in a computer readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and executes the computer instructions, so that the computer device executes the method for establishing a dependency relationship according to the first aspect.
The method, the device and the storage medium for establishing the dependency relationship have the following technical effects:
when the dependency libraries in the dependency library set have version conflicts, taking the dependency library with the highest version in the dependency library set as a target library based on rule information, and compiling resource source codes of at least two service plug-ins respectively by utilizing the target library; and when the resource source code of the residual service plug-ins fails to be compiled, copying the shared resources of the dependency base corresponding to the residual service plug-ins and the target base, and establishing the dependency relationship between the storage path of the shared resources and the non-shared resources in the dependency base corresponding to the residual service plug-ins. The dependency library set is composed of dependency libraries corresponding to the two service plug-ins, and the dependency libraries corresponding to the remaining service plug-ins are the remaining dependency libraries except the target library in the dependency library set. The rule information is information for plugin preprocessing extracted from preset detection rules in response to compiling instructions for the at least two business plugins, and the preset detection rules are obtained by compiling preset source code files stored in a compiler directory. According to the method and the device, the dependency relationship is established by automatically analyzing the plug-in dependence by utilizing the rule information used for plug-in preprocessing in the preset detection rule, and the efficiency of analyzing the plug-in dependence is improved. By means of the established dependency relationship, convenience of positioning problems during abnormal troubleshooting can be improved, and therefore development efficiency is improved.
Drawings
In order to more clearly illustrate the technical solutions and advantages of the embodiments of the present application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative efforts.
FIG. 1 is a schematic diagram of an application environment provided by an embodiment of the present application;
fig. 2 is a schematic flowchart of a method for establishing a dependency relationship according to an embodiment of the present application;
fig. 3 is a schematic flowchart illustrating a preset source code file implantation process according to an embodiment of the present disclosure;
fig. 4 is a schematic flowchart of acquiring a resource source code of a service plug-in according to an embodiment of the present application;
fig. 5 is a block diagram of a dependency relationship establishing apparatus according to an embodiment of the present application;
fig. 6 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
It should be noted that the terms "comprises" and "comprising," and any variations thereof, in the description and claims of this application and the above-described drawings, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or server that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
Before further detailed description of the embodiments of the present application, terms and expressions referred to in the embodiments of the present application will be described, and the terms and expressions referred to in the embodiments of the present application will be used for the following explanation.
LLVM: (Low Level Virtual Machine, underlying Virtual Machine), LLVM project is a collection of modular, reusable compilers and tool chain technologies.
Xcode: an integrated development tool is a development tool for iOS system (an operating system developed by apple, inc.) and macOS system (an operating system developed by apple, inc.) application programs.
Clang: is a light-weight compiler of C language, C + +, objective-C language. Can be a child of the LLVM item, and if the LLVM item is used as a compiler including a front end, an optimizer, and a back end, clang is the front end of the compiler.
Referring to fig. 1, fig. 1 is a schematic diagram of an application environment according to an embodiment of the present disclosure, where the application environment may include a client 10 and a server 20, and the client 10 and the server 20 may be directly or indirectly connected through wired or wireless communication. The client 10 can install the Xcode, and can develop an application program using the Xcode. The client 10 may obtain the relevant Xcode plug-ins from the server 20 to assist in development. The compiling before the plug-in installation usually uses a relevant dependency library, and the plug-in can be compiled and the plug-in dependency can be analyzed by using the establishment scheme of the dependency relationship provided by the application. It should be noted that fig. 1 is only an example.
The client may be an entity device of a type such as a smart phone, a desktop computer, a tablet computer, a notebook computer, an Augmented Reality (AR)/Virtual Reality (VR) device, a digital assistant, a smart speaker, a smart wearable device, or a software running in the entity device, such as a computer program. The operating system corresponding to the client may be an Android system (Android system), an iOS system, a linux system (one operating system), a Microsoft Windows system (Microsoft Windows operating system), and the like.
The server side can be an independent physical server, can also be a server cluster or a distributed system formed by a plurality of physical servers, and can also be a cloud server for providing basic cloud computing services such as cloud service, a cloud database, cloud computing, cloud functions, cloud storage, network service, cloud communication, middleware service, domain name service, security service, content Delivery Network (CDN) and a big data and artificial intelligence platform. Which may include a network communication unit, a processor, and memory, among others. The server can provide background services for the corresponding client. Among them, cloud computing (cloud computing) is a computing model that distributes computing tasks over a resource pool formed by a large number of computers, so that various application systems can obtain computing power, storage space, and information services as needed. The network that provides the resources is called the "cloud". Resources in the "cloud" appear to the user as if they are infinitely expandable and can be acquired at any time, used on demand, expanded at any time, and paid for use.
In practical application, the used Xcode plug-in may be some development plug-in for improving efficiency, for example, a plug-in that can implement functions of code style detection, code block formatting, operation warning, thread safety, data collection, and the like. Applications developed using Xcode are primarily running on X86 architecture devices.
A specific embodiment of a method for establishing a dependency relationship according to the present application is described below, and fig. 2 is a flowchart of a method for establishing a dependency relationship according to the embodiment of the present application, where the method operation steps described in the embodiment or the flowchart are provided, but more or fewer operation steps may be included based on conventional or non-inventive labor. The order of steps recited in the embodiments is merely one manner of performing the steps in a multitude of orders and does not represent the only order of execution. In actual system or product execution, sequential execution or parallel execution (e.g., parallel processor or multi-threaded environment) may be possible according to the embodiments or methods shown in the figures. Specifically, as shown in fig. 2, the method may include:
s201: extracting rule information for plug-in preprocessing from a preset detection rule in response to a compiling instruction for at least two business plug-ins; the preset detection rule is obtained by compiling a preset source code file stored in a compiler directory;
in the embodiment of the application, in response to a compiling instruction for at least two business plugins, a development tool or a device installed with the development tool extracts rule information for plugin preprocessing from a preset detection rule. The development tool may be Xcode or other development tool, and the device may be a smart phone, a desktop computer, a tablet computer, a notebook computer, an augmented reality/virtual reality device, a digital assistant, a smart speaker, a smart wearable device, a server, or the like.
For the above compiling instruction for at least two service plug-ins, 1) the generating timing of the compiling instruction may be after acquiring the resource source code of the service plug-in. Correspondingly, the at least two service plug-ins for which the compiling instruction is directed may be composed of service plug-ins currently acquiring the resource source code, such as plug-in a and plug-in B; or may be composed of a business plug-in (such as the plug-in a of version 2.0) which currently acquires the resource source code and a local plug-in (such as the plug-in a of version 1.0) which has an association relationship with the business plug-in. Of course, the at least two service plug-ins for which the compiling instruction is directed may also be composed of plug-in B, plug-in a of version 2.0, and plug-in a of version 1.0. 2) The timing of the generation of the compiled instruction may also indicate a preset time interval. Accordingly, the at least two service plug-ins for which the compiled instructions are intended may be composed of native plug-ins. The method can be understood as analyzing the plug-in dependence on the local plug-in regularly, thereby making up the omission of analyzing the plug-in dependence in the stages of downloading and installing the plug-in.
The preset detection rule providing the rule information for the plug-in preprocessing will be described below. The preset detection rule is obtained by compiling a preset source code file stored in a compiler directory, wherein:
1) The composition and storage of the preset source code file are related.
The preset source code file comprises an entry file and a description file aiming at the entry file. And storing the preset source code file in a compiler directory. Referring to fig. 3, before the extracting rule information for plug-in preprocessing from preset detection rules in response to a compiling instruction for at least two business plug-ins, the method further includes:
s301: acquiring a source code of the compiler;
s302: determining a tool directory and a check list file under the tool directory based on source code of the compiler;
s303: creating a plug-in check folder under the tool directory;
s304: writing a code segment indicating that subdirectories are added to the directory where the plug-in inspection folder is located in the inspection list file;
s305: creating an entry file and a description file aiming at the entry file in the plug-in check folder, and taking the entry file and the description file as the preset source code file; the entry file is an execution entry of resource source codes of the downloaded and compiled plug-ins, and the entry file and the code segments have an association relation.
The compiler here may be Clang, and the preset source code file is stored in a compiler directory, which may be regarded as a necessary file for obtaining the preset detection rule by embedding and compiling in the Clang directory. Firstly, obtaining a Clang source code; then, determining a tool directory (Clang/tools directory) and a check list file (Clang/tools/CcheckList. Txt) under the tool directory based on the Clang source code, wherein the check list file is in the source code; then, creating a plug-in check folder (checkplug folder) under the tool directory; furthermore, a code segment indicating that a sub-directory is added to the directory where the plug-in check folder is located is written in the check list file: add _ clipping _ subdirectory (checkplug) text; finally, an entry file (checkplug. Cpp file) and a description file (cchecksist. Txt file) for the entry file are created in the plug-in check folder (checkplug folder), and the entry file and the description file are taken as preset source files.
The entry file may be an execution entry of resource source code for downloading and compiling the plug-in, and the entry file has an association relationship with the code segment added to the check list file, and the description file records the paraphrase about the content in the entry file. It can be understood that: after the preset source code file composed of the entry file and the description file is compiled to obtain the preset detection rule, the development tool or the device provided with the development tool executes the downloading and installation of the related plug-ins according to the content in the preset detection rule, and the content in the preset detection rule is that the preset source code file is specified at the level closer to the machine language. And the composition and storage of the preset source code file provide a data source for obtaining the preset detection rule. The method comprises the steps that a plug-in inspection folder specially created for a preset source code file and a specially introduced code fragment (indicating that a subdirectory is added to a directory where the plug-in inspection folder is located) are provided, on one hand, execution reference is provided for plug-in downloading and installation, and on the other hand, the ordered storage of related plug-in contents provides convenience for subsequent searching and the like. The role of the code fragment is to create a folder for the newly downloaded add-in under the directory where the add-in check folder is located for storing relevant data. Of course, data about the same plug-in of different versions may be stored under the same folder.
2) Compiling a preset source code file to obtain a preset detection rule: firstly, performing lexical analysis on the preset source code file to obtain a corresponding tag sequence; then, the marker sequence is parsed to obtain a syntax tree used as the preset detection rule.
Lexical analysis is the process of converting a sequence of characters (a character stream) into a sequence of tokens (or a stream of words) in computer science. The procedure or function for performing lexical analysis is called a lexical analyzer (lexical analyzer, referred to simply as lexer) or scanner (scanner). The lexical analyzer typically exists in the form of a function for invocation by the parser. The parsing is a process of performing a syntax check and constructing a data structure composed of input words, and is generally a hierarchical data structure such as a parsing tree or an abstract syntax tree. The program or function that performs the parsing is called a parser and typically appears as a component of a compiler or interpreter.
The parser may also include a separate lexical parser so that individual "words" may be separated from the input character stream using the lexical parser and the word stream used as input for the parsing. The parser can be written manually or (semi-) automatically generated using tools.
Compared with a preset source code file closer to a machine language, the method has the advantages that the preset detection rule capable of providing rule information for plug-in preprocessing is used, and the part needing to be perfected in the plug-in downloading and installing process is convenient to capture. In practical application, the preset detection rule provides rule information for preprocessing the plug-in, the preset detection rule can be regarded as a syntax tree of "preprocessing the plug-in", and the syntax tree can realize preprocessing the plug-in through three modules, namely an execution module, a parsing module and an installation module, which are created by the syntax tree.
The following will describe the related contents of obtaining the resource source code of the service plug-in. The resource source code of the service plug-in is obtained by the development tool or the equipment provided with the development tool from the related server.
According to the configuration requirement of the development environment, when the server is an internal server, all required plug-ins can be obtained from the server, and the server is also responsible for updating and checking the plug-ins; when the server is an external server, the required plug-in may be obtained from different external servers, for example, plug-in a may be obtained from external server a providing plug-in a, and plug-in B may be obtained from external server B providing plug-in B, and accordingly, external server a may be responsible for update check of plug-in a, and external server B may be responsible for update check of plug-in B. It should be noted that the server may have both an internal server and an external server. In addition, the internal server or the external server may be an independent physical server, a server cluster or a distributed system configured by a plurality of physical servers, or a cloud server.
When the plug-in type of the service plug-in is a new type, it indicates that the development tool or the device side installed with the development tool does not have the plug-in locally (including the same plug-in of different versions), and the resource source code of the service plug-in is a full source code. When the plug-in type of the service plug-in is an upgrade type, it indicates that the same plug-in of a low version locally exists on the development tool or the device side on which the development tool is installed, and the resource source code of the service plug-in may be a full source code or an incremental source code.
In an exemplary embodiment, as shown in fig. 4, before the extracting rule information for plug-in preprocessing from a preset detection rule in response to a compiling instruction for at least two business plug-ins, the method further includes:
s401: receiving resource source code data which are sent by a server and indicate the service plug-in; the resource source code data is response feedback of the server for the received resource source code acquisition request;
s402: and downloading the resource source code of the service plug-in based on the download address in the resource source code data.
The server receives a resource source code acquisition request sent by the development tool or the equipment provided with the development tool, and the server feeds back a response to the request to the development tool or the equipment provided with the development tool. The response feedback includes resource source code data indicating the service plug-in, and the resource source code data may include basic information of the service plug-in (such as plug-in name, plug-in type, version number), and source address information (such as download address). And the development tool or the equipment provided with the development tool downloads the resource source code of the service plug-in based on the download address in the resource source code data.
There are two types of situations that the server issues the resource source code of the service plug-in or the download address of the resource source code: 1) The server responds to an acquisition request of the development tool or equipment provided with the development tool, and the acquisition request carries the information of the plug-in to be downloaded. After receiving the request, the server searches the plug-in resource in the database according to the information of the plug-in to be downloaded, and the resource source code of the plug-in to be downloaded or the download address of the resource source code is also issued by the server. Of course, if the server subsequently checks that the plug-in to be downloaded is updated, the resource source code of the plug-in to be downloaded or the download address of the resource source code can also be issued according to the prior agreement.
2) The server responds to an acquisition request of the development tool or the equipment provided with the development tool, and the acquisition request carries information of the local plug-in (of the development tool or the equipment provided with the development tool). After receiving the request, the server searches the plug-in resource in the database according to the information of the local plug-in, and after updating and checking, the server issues the resource source code of the local plug-in needing to be updated or the download address of the resource source code. In practical applications, the server is not issued once, and the server is often an internal server. For example, the information of the local plug-in indicates the plug-ins a-e, the server checks that the plug-in a has an update at time point 1, and issues the resource source code or the download address of the resource source code of the plug-in a, and the server checks that the plug-in c has an update at time point 2, and issues the resource source code or the download address of the resource source code of the plug-in c, where time point 1 is not equal to time point 2.
Illustratively, before the receiving the resource source code data indicating the service plug-in sent by the server, the method further comprises: firstly, executing a built-in script; the embedded script is used for determining the information of the current service plug-in unit according to the received incoming parameters and triggering and sending the resource source code acquisition request; the resource source code obtaining request carries the current service plug-in information; then, sending the resource source code acquisition request to the server, so that the server generates corresponding resource source code data when detecting that the updated resource of the service plug-in falling into the current service plug-in set exists; wherein the current service plug-in set is determined based on the current service plug-in information. This portion can be used as a work task for the execution module created here by the syntax tree.
The development tool or the device on which the development tool is installed executes the built-in script. The built-in script is built in the development tool and is provided with an open interface for receiving incoming parameters, wherein the incoming parameters can be sent by workers and can be sent by means of a data acquisition program. The built-in script has the functions of determining the current service plug-in information according to the received incoming parameters and triggering and sending a resource source code acquisition request. Accordingly, after the built-in script is executed, the resource source code obtaining request is transmitted to the server by the development tool or the device installed with the development tool.
The server responds to the received resource source code acquisition request, and generates corresponding resource source code data when detecting that the updated resource of the service plug-in falling into the current service plug-in set exists; wherein the current service plug-in set is determined based on the current service plug-in information. The current service plug-in information may correspond to the information of the local plug-in, and the current service plug-in information may include a plug-in name, a plug-in type, and a version number of the local plug-in. For example, the current service plug-in information includes the plug-in name, plug-in type, and version number of the plug-ins a-e, and then the current service plug-in set is composed of the plug-ins a-e. And when detecting that any plug-in the set has update, the server generates resource source code data of the plug-in and sends the resource source code data to the development tool or equipment provided with the development tool. Therefore, automatic updating and checking of the plug-ins can be realized, and the development tool or the equipment provided with the development tool can acquire the resource source code data of the plug-ins with updates in time, so that the downloading and installing efficiency of the related plug-ins is improved.
In practical applications, the built-in script can be executed by using the aforementioned preset detection rule (syntax tree). The built-in script is a static script and can be written using the swift language (a programming language). The swift language writing is considered to avoid the situation that the Xcode is incompatible in language version, and extra configuration is not needed.
Further, when the resource source code data indicates at least two service plug-ins, the downloading the resource source code of the service plug-in based on the download address in the resource source code data includes: firstly, processing the resource source code data according to a preset data format to obtain at least two plug-in dimension data; the preset data format indicates a field for recording the name of the plug-in, a field for recording the version number and a field for recording the download address; then, distributing a corresponding downloading thread for each plug-in dimension data; and finally, downloading the resource source code of the service plug-in described by the plug-in dimension data based on the download thread and the field for recording the download address in the plug-in dimension data. This part can be a job task for the parsing module created here by the syntax tree.
After the resource source code data are obtained by the development tool or the device installed with the development tool, the resource source code data can be processed according to a preset data format, which is equivalent to formatting the resource source code data. For example, the resource source code data indicates at least two service plug-ins, and then at least two plug-in dimension data are obtained through processing, where each plug-in dimension data corresponds to one service plug-in. The plug-in dimension data includes a field for recording a plug-in name (plugname) of the corresponding plug-in, a field for recording a version number (version) of the corresponding plug-in, and a field for recording a download address (address) of the corresponding plug-in. If the resource source code data indicates the plug-in 1 and the plug-in 2, the resource source code data is formatted to obtain the following processing results:
Figure BDA0003219230460000121
the resource source code data is processed and presented in xml (eXtensible Markup Language) format, and an outer plugin node represents plugin dimension data, thereby forming a list. Of course, the resource source code data can also be presented in json (JavaScript Object Notation) format after being processed.
And respectively allocating a corresponding downloading thread for each plug-in dimension data by the development tool or the equipment provided with the development tool. And downloading the resource source code of the service plug-in described by the plug-in dimension data based on the download thread and the field for recording the download address in the plug-in dimension data. A sub-thread can be started through a thread (pthread), according to the plug-in dimension data in the list, a download thread 1 is allocated to the plug-in dimension data 1 corresponding to the plug-in 1, and a download thread 2 is allocated to the plug-in dimension data 1 corresponding to the plug-in 2. And the downloading thread 1 downloads the resource source code of the plug-in 1 according to the field of the recorded downloading address in the plug-in dimensional data 1, and the downloading thread 2 downloads the resource source code of the plug-in 2 according to the field of the recorded downloading address in the plug-in dimensional data 2.
The resource source code data is formatted, so that the positioning difficulty of the related data of a certain plug-in can be reduced, and the resource source code of the plug-in can be conveniently downloaded based on the related data. Meanwhile, the distribution of the downloading threads is carried out from the dimension of the plug-in, so that the occurrence of the blocking phenomenon can be reduced, and the interference of the plug-in compiling in the process can be reduced.
S202: respectively determining the dependency libraries corresponding to the at least two service plug-ins to obtain a dependency library set;
in the embodiment of the application, the development tool or the device installed with the development tool respectively determines the dependency libraries corresponding to at least two business plug-ins to obtain a dependency library set. If the at least two business plug-ins are plug-ins 3, 4 and 5, the dependent library used for compiling the plug-ins 3 is library 1 of version 1.0, the dependent library used for compiling the plug-ins 4 is library 1 of version 2.0, and the dependent library used for compiling the plug-ins 5 is library 1 of version 1.1. Then the dependent library set consists of version 1.0 library 1, version 2.0 library 1, and version 1.1 library 1. The information of the dependency library used for compiling a certain plug-in may be included in the resource source code of the plug-in, or may be included in the local configuration information. This part can be a job task for the parsing module created here by the syntax tree.
S203: when the dependency libraries in the dependency library set have version conflicts, taking the dependency library with the highest version in the dependency library set as a target library based on the rule information, and compiling the resource source codes of the at least two business plug-ins respectively by utilizing the target library;
in the embodiment of the application, when the development tool or the device installed with the development tool has a version conflict in the dependent library set, the dependent library with the highest version in the dependent library set is used as a target library based on the rule information, and the target library is used for compiling the resource source codes of at least two business plug-ins respectively. This part can be a job task for the parsing module created here by the syntax tree.
In connection with the example in step S202, the library 1 of version 1.0, the library 1 of version 2.0, and the library 1 of version 1.1 in the dependent library set have version conflicts, and the dependent library with the highest version may be: version 2.0 of library 1 serves as the target library. Accordingly, the resource source code of the plug-in 3, the resource source code of the plug-in 4, and the resource source code of the plug-in 5 are compiled using the library 1 of version 2.0.
Of course, if the dependent library used for compiling plug-in 5 is library 2 of version 1.1, then all that has version conflict in the dependent library set are library 1 of version 1.0 (corresponding to plug-in 3) and library 1 of version 2.0 (corresponding to plug-in 4). Accordingly, the dependent library with the highest version among the library 1 of version 1.0 and the library 1 of version 2.0 may be used as the target library based on the rule information, so that the resource source code of the plug-in 3 and the resource source code of the plug-in 4 are compiled using the library 1 of version 2.0. While the source code of the resource of the plug-in 5 is compiled, still using the library 2 of version 1.1.
In addition, when the dependent libraries in the dependent library set do not have version conflicts (for example, the dependent library used for compiling the plug-in 6 is the library 1 of version 1.0, and the dependent library used for compiling the plug-in 7 is the library 2 of version 2.0), a) if at least two service plug-ins (the plug-in 6 and the plug-in 7) are composed of service plug-ins currently acquiring the resource source code, the determination of the target library is not performed any more, the resource source code of the plug-in 6 is compiled by using the library 1 of version 1.0, and the resource source code of the plug-in 7 is compiled by using the library 2 of version 2.0. b) If at least two service plug-ins (plug-in 6 and plug-in 7) are composed of the service plug-in currently acquiring the resource source code and the local plug-in having an association relation with the service plug-in, the determination of the target library is not performed any more, and only the service plug-in currently acquiring the resource source code is compiled.
S204: when the resource source code compiling of the residual service plug-ins fails, copying the common resources of the dependency base corresponding to the residual service plug-ins and the target base, and establishing the dependency relationship between the storage path of the common resources and the non-common resources in the dependency base corresponding to the residual service plug-ins; and the dependency libraries corresponding to the residual service plug-ins are residual dependency libraries except the target library in the dependency library set.
In the embodiment of the application, when the resource source code compiling of the remaining service plug-ins fails, the development tool or the device installed with the development tool copies the shared resources of the dependency base corresponding to the remaining service plug-ins and the target base, and establishes the dependency relationship between the storage path of the shared resources and the non-shared resources in the dependency base corresponding to the remaining service plug-ins. This part can be a job task for the parsing module created here by the syntax tree.
In connection with the example in step S202, library 1 of version 1.0 (corresponding to plug-in 3), library 1 of version 2.0 (corresponding to plug-in 4), and library 1 of version 1.1 (corresponding to plug-in 5) in the dependent library set have version conflicts, where library 1 of version 2.0 is the target library. Then plug-ins 3 and 5 are the remaining service plug-ins. And the resource source codes of the rest service plug-ins are failed to be compiled, namely the resource source codes of the rest service plug-ins are failed to be compiled by using the target library. Taking the example of failure of compiling the resource source code of the plug-in 3 by using the target library (the library 1 of the version 2.0), if the library 1 of the version 1.0 has files a, b and c, the library 1 of the version 2.0 has files b, c and d, the shared resources of the dependent library corresponding to the plug-in 3 and the target library are files b and c, and correspondingly, the non-shared resource in the dependent library corresponding to the plug-in 3 is file a. And copying the files b and c, and establishing a dependency relationship between the storage paths of the files b and c and the file a, wherein the file a can be used as an index between the storage paths of the files b and c and the library 1 of the version 1.0. The dependency library information used by the compilation plug-in 3 may be updated based on the index.
Of course, if the dependent library used for compiling plug-in 5 is library 2 of version 1.1, then all that has version conflict in the dependent library set are library 1 of version 1.0 (corresponding to plug-in 3) and library 1 of version 2.0 (corresponding to plug-in 4), where library 1 of version 2.0 is the target library. Since the resource source code of the plug-in 5 is still compiled using the library 2 of version 1.1. The remaining service plug-in is plug-in 3, and it can be understood that the remaining service plug-in needs to have the following two conditions at the same time: and the dependency libraries corresponding to the residual service plug-ins are the residual dependency libraries except the target library in the dependency library set, and the residual service plug-ins are failed to be compiled by using the target library.
In an exemplary embodiment, after copying the shared resources of the dependency library corresponding to the remaining business plug-in and the target library, and establishing a dependency relationship between the storage path of the shared resources and the non-shared resources in the dependency library corresponding to the remaining business plug-in, the method further includes: firstly, compiling resource source codes of the residual service plug-ins based on the dependency libraries corresponding to the residual service plug-ins and the dependency relations; then, when the compiling fails, error information is generated and written into a log file.
Taking the example of failure in compiling the resource source code of the plug-in 3 by using the target library (library 1 of version 2.0), the dependency relationship between the storage paths of the files b and c and the file a is established. The resource source code for plug-in 3 may be compiled using the dependency and library 1 of version 1.0 (corresponding to plug-in 3). When compilation fails, error information is generated and written to a log (log) file. Wherein, the log (log) file is placed in the checkplug folder mentioned in the foregoing step S201, and can be used as problem feedback by the staff to solve the problem. When the compiling is successful, the compiling result is saved, and the plug-in 3 is installed or the local original low-version plug-in 3 is updated based on the compiling result. Therefore, whether the established dependency relationship is accurate or not can be checked in time, and if the compiling fails (due to the fact that the dependency relationship is inaccurate in high probability) and error reporting information is generated, a worker can be introduced in time to perform problem troubleshooting, so that the efficiency of installing plug-in auxiliary development is improved.
In an exemplary embodiment, for a target service plug-in for which the resource source code is successfully compiled, the compiling result is processed according to the plug-in type of the target service plug-in. It should be noted that the resource source code can be used as the target service plug-in as long as the compilation is successful.
For the explanation of the new addition type and the upgrade type, the related description in the step S201 may be referred to, and will not be described again. When the plug-in type of the target service plug-in is a newly added type, installing the target service plug-in based on a compiling result (of a full source code); when the plug-in type of the target service plug-in is an upgrade type, updating an original plug-in corresponding to the target service plug-in based on the compiling result, covering the original plug-in based on the compiling result (of the full source code), and also comparing the compiling result (of the incremental source code) with the original plug-in so as to update. This part can be a job task for the installation module created here by the syntax tree.
According to the technical scheme provided by the embodiment of the application, the embodiment of the application provides a scheme for analyzing the dependency relationship of the plug-in unit, when the dependency library in the dependency library set has version conflict, the dependency library with the highest version in the dependency library set is used as a target library based on the rule information, and the target library is used for compiling the resource source codes of at least two business plug-ins respectively; and when the resource source code of the residual service plug-ins fails to be compiled, copying the shared resources of the dependency base corresponding to the residual service plug-ins and the target base, and establishing the dependency relationship between the storage path of the shared resources and the non-shared resources in the dependency base corresponding to the residual service plug-ins. The dependency library set is composed of dependency libraries corresponding to the two service plug-ins, and the dependency libraries corresponding to the remaining service plug-ins are the remaining dependency libraries except the target library in the dependency library set. The rule information is information for preprocessing the plug-ins extracted from a preset detection rule in response to a compiling instruction for the at least two business plug-ins, and the preset detection rule is obtained by compiling a preset source code file stored in a compiler directory. According to the method and the device, the dependency relationship is established by automatically analyzing the plug-in dependence by utilizing the rule information used for plug-in preprocessing in the preset detection rule, and the efficiency of analyzing the plug-in dependence is improved. By means of the established dependency relationship, convenience of positioning problems during abnormal troubleshooting can be improved, and therefore development efficiency is improved.
An embodiment of the present application further provides a device for establishing a dependency relationship, as shown in fig. 5, the device 500 for establishing a dependency relationship includes:
the rule information extraction module 501: the system comprises a processor, a memory and a processor, wherein the processor is used for responding to a compiling instruction for at least two business plug-ins, and extracting rule information for plug-in preprocessing from a preset detection rule; the preset detection rule is obtained by compiling a preset source code file stored in a compiler directory;
dependent library set derivation module 502: the dependency libraries are used for respectively determining the dependency libraries corresponding to the at least two business plug-ins to obtain a dependency library set;
the compiling module 503: the system comprises a dependency library set and a target library, wherein the dependency library set comprises a plurality of dependency libraries, and the target library is used for compiling resource source codes of at least two business plug-ins respectively;
the dependency establishment module 504: the system comprises a database, a target database and a plurality of service plug-ins, wherein the database is used for storing the resource source codes of the service plug-ins, and the target database is used for storing the resource source codes of the service plug-ins; and the dependency libraries corresponding to the residual service plug-ins are residual dependency libraries except the target library in the dependency library set.
It should be noted that the device and method embodiments in the device embodiment are based on the same inventive concept.
The embodiment of the present application provides an electronic device, which includes a processor and a memory, where the memory stores at least one instruction or at least one program, and the at least one instruction or the at least one program is loaded and executed by the processor to implement the method for establishing a dependency relationship provided in the above method embodiment.
Further, fig. 6 shows a hardware structure diagram of an electronic device for implementing the method for establishing a dependency provided in the embodiment of the present application, where the electronic device may participate in or constitute or include the apparatus for establishing a dependency provided in the embodiment of the present application. As shown in fig. 6, electronic device 60 may include one or more (shown as 602a, 602b, … …,602 n) processors 602 (processor 602 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA), a memory 604 for storing data, and a transmission device 606 for communication functions. Besides, the method can also comprise the following steps: a display, an input/output interface (I/O interface), a Universal Serial Bus (USB) port (which may be included as one of the ports of the I/O interface), a network interface, a power source, and/or a camera. It will be understood by those skilled in the art that the structure shown in fig. 6 is only an illustration and is not intended to limit the structure of the electronic device. For example, electronic device 60 may also include more or fewer components than shown in FIG. 6, or have a different configuration than shown in FIG. 6.
It should be noted that the one or more processors 602 and/or other data processing circuitry described above may be referred to generally herein as "data processing circuitry". The data processing circuitry may be embodied in whole or in part in software, hardware, firmware, or any combination thereof. Further, the data processing circuit may be a single stand-alone processing module, or incorporated in whole or in part into any of the other elements in the electronic device 60 (or mobile device). As referred to in the embodiments of the application, the data processing circuit acts as a processor control (e.g. selection of variable resistance termination paths connected to the interface).
The memory 604 may be used to store software programs and modules of application software, such as program instructions/data storage devices corresponding to the method for establishing a dependency relationship described in the embodiment of the present application, and the processor 602 executes various functional applications and data processing by running the software programs and modules stored in the memory 64, so as to implement one of the methods for establishing a dependency relationship described above. The memory 604 may include high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, memory 604 may further include memory located remotely from processor 602, which may be connected to electronic device 60 via a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The transmission means 606 is used for receiving or sending data via a network. Specific examples of the network described above may include a wireless network provided by a communication provider of the electronic device 60. In one example, the transmission device 606 includes a network adapter (NIC) that can be connected to other network devices through a base station so as to communicate with the internet. In one embodiment, the transmission device 606 may be a Radio Frequency (RF) module, which is used for communicating with the internet in a wireless manner.
The display may be, for example, a touch screen type Liquid Crystal Display (LCD) that may enable a user to interact with a user interface of the electronic device 60 (or mobile device).
Embodiments of the present application further provide a computer-readable storage medium, which may be disposed in an electronic device to store at least one instruction or at least one program for implementing a method for establishing a dependency relationship in the method embodiments, where the at least one instruction or the at least one program is loaded and executed by the processor to implement the method for establishing a dependency relationship provided in the method embodiments.
Alternatively, in this embodiment, the storage medium may be located in at least one network server of a plurality of network servers of a computer network. Optionally, in this embodiment, the storage medium may include but is not limited to: a U-disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic or optical disk, and other various media capable of storing program codes.
It should be noted that: the sequence of the embodiments of the present application is only for description, and does not represent the advantages and disadvantages of the embodiments. And specific embodiments thereof have been described above. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
The embodiments in the present application are described in a progressive manner, and the same and similar parts among the embodiments can be referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the device and electronic apparatus embodiments, since they are substantially similar to the method embodiments, the description is relatively simple, and reference may be made to some descriptions of the method embodiments for relevant points.
It will be understood by those skilled in the art that all or part of the steps for implementing the above embodiments may be implemented by hardware, or may be implemented by a program instructing relevant hardware, where the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a magnetic disk or an optical disk, etc.
The above description is only exemplary of the present application and should not be taken as limiting the present application, as any modification, equivalent replacement, or improvement made within the spirit and principle of the present application should be included in the protection scope of the present application.

Claims (10)

1. A method for establishing a dependency relationship, the method comprising:
extracting rule information for plug-in preprocessing from a preset detection rule in response to a compiling instruction for at least two business plug-ins; the preset detection rule is obtained by compiling a preset source code file stored in a compiler directory;
respectively determining the dependency libraries corresponding to the at least two service plug-ins to obtain a dependency library set;
when the dependency libraries in the dependency library set have version conflicts, taking the dependency library with the highest version in the dependency library set as a target library based on the rule information, and compiling the resource source codes of the at least two business plug-ins respectively by utilizing the target library;
when the resource source code compiling of the residual service plug-ins fails, copying the common resources of the dependency base corresponding to the residual service plug-ins and the target base, and establishing the dependency relationship between the storage path of the common resources and the non-common resources in the dependency base corresponding to the residual service plug-ins; and the dependency libraries corresponding to the residual service plug-ins are residual dependency libraries except the target library in the dependency library set.
2. The method according to claim 1, wherein after copying the common resource between the dependency library corresponding to the remaining service plug-in and the target library, and establishing the dependency relationship between the storage path of the common resource and the non-common resource in the dependency library corresponding to the remaining service plug-in, the method further comprises:
compiling resource source codes of the residual service plug-ins based on the dependency libraries corresponding to the residual service plug-ins and the dependency relations;
and when the compiling fails, generating error reporting information and writing the error reporting information into a log file.
3. The method according to any one of claims 1 or 2, further comprising:
for a target service plug-in with successfully compiled resource source codes, when the plug-in type of the target service plug-in is a newly added type, installing the target service plug-in based on a compiling result; and when the plug-in type of the target service plug-in is the upgrading type, updating the original plug-in corresponding to the target service plug-in based on the compiling result.
4. The method of claim 1, wherein prior to said extracting rule information for plug-in pre-processing from preset detection rules in response to compiled instructions for at least two business plug-ins, the method further comprises:
receiving resource source code data which are sent by a server and indicate the service plug-in; the resource source code data is response feedback of the server for the received resource source code acquisition request;
and downloading the resource source codes of the service plug-in based on the download addresses in the resource source code data.
5. The method of claim 4, wherein before receiving the resource source code data indicating the service plug-in sent by the server, the method further comprises:
executing the built-in script; the embedded script is used for determining the information of the current service plug-in according to the received incoming parameters and triggering and sending the resource source code acquisition request; the resource source code obtaining request carries the current service plug-in information;
sending the resource source code acquisition request to the server so that the server generates corresponding resource source code data when detecting that the updated resource of the service plug-in falling into the current service plug-in set exists; wherein the current service plug-in set is determined based on the current service plug-in information.
6. The method of claim 4, wherein when the resource source code data indicates at least two service plug-ins, the downloading the resource source code of the service plug-in based on the download address in the resource source code data comprises:
processing the resource source code data according to a preset data format to obtain at least two plug-in dimension data; the preset data format indicates a field for recording the name of the plug-in, a field for recording the version number and a field for recording the download address;
distributing a corresponding downloading thread for each plug-in dimension data;
and downloading the resource source code of the service plug-in described by the plug-in dimension data based on the download thread and the field for recording the download address in the plug-in dimension data.
7. The method of claim 1, wherein prior to said extracting rule information for plug-in pre-processing from preset detection rules, the method further comprises:
acquiring a source code of the compiler;
determining a tool directory and a checklist file under the tool directory based on source code of the compiler;
creating a plug-in check folder under the tool directory;
writing a code segment indicating that subdirectories are added to the directory where the plug-in inspection folder is located in the inspection list file;
creating an entry file and a description file aiming at the entry file in the plug-in check folder, and taking the entry file and the description file as the preset source code file; the entry file is an execution entry of resource source codes of the downloaded and compiled plug-ins, and the entry file and the code segments have an association relation.
8. The method according to any one of claims 1 or 7, wherein before said extracting rule information for plug-in preprocessing from preset detection rules, the method further comprises:
performing lexical analysis on the preset source code file to obtain a corresponding tag sequence;
and carrying out syntactic analysis on the mark sequence to obtain a syntactic tree used as the preset detection rule.
9. An apparatus for establishing a dependency relationship, the apparatus comprising:
a rule information extraction module: the system comprises a processor, a memory and a processor, wherein the processor is used for responding to a compiling instruction for at least two business plug-ins, and extracting rule information for plug-in preprocessing from a preset detection rule; the preset detection rule is obtained by compiling a preset source code file stored in a compiler directory;
a dependent library set obtaining module: the dependency libraries are used for respectively determining the dependency libraries corresponding to the at least two business plug-ins to obtain a dependency library set;
a compiling module: the system is used for taking the dependency library with the highest version in the dependency library set as a target library based on the rule information when the dependency libraries in the dependency library set have version conflicts, and compiling the resource source codes of the at least two business plug-ins by utilizing the target library respectively;
a dependency relationship establishing module: the system comprises a database, a target database and a plurality of service plug-ins, wherein the database is used for storing the resource source codes of the service plug-ins, and the target database is used for storing the resource source codes of the service plug-ins; and the dependency libraries corresponding to the residual service plug-ins are residual dependency libraries except the target library in the dependency library set.
10. A computer-readable storage medium, in which at least one instruction or at least one program is stored, the at least one instruction or the at least one program being loaded and executed by a processor to implement the method for establishing a dependency relationship according to any one of claims 1 to 8.
CN202110952922.2A 2021-08-19 2021-08-19 Method and device for establishing dependency relationship and storage medium Pending CN115904381A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110952922.2A CN115904381A (en) 2021-08-19 2021-08-19 Method and device for establishing dependency relationship and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110952922.2A CN115904381A (en) 2021-08-19 2021-08-19 Method and device for establishing dependency relationship and storage medium

Publications (1)

Publication Number Publication Date
CN115904381A true CN115904381A (en) 2023-04-04

Family

ID=86494147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110952922.2A Pending CN115904381A (en) 2021-08-19 2021-08-19 Method and device for establishing dependency relationship and storage medium

Country Status (1)

Country Link
CN (1) CN115904381A (en)

Similar Documents

Publication Publication Date Title
US10095489B1 (en) GUI-based application template for containerized application software development
US9898269B2 (en) Build deployment automation for information technology mangement
CN110968325B (en) Applet conversion method and device
US11429365B2 (en) Systems and methods for automated retrofitting of customized code objects
US11561784B2 (en) Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms
CN111680253B (en) Page application data packet generation method and device, computer equipment and storage medium
US11113050B2 (en) Application architecture generation
US11392366B1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
US20200257524A1 (en) Generating interaction libraries
CN117693734A (en) Front-end item processing method, device, equipment, management system and storage medium
CN115599359A (en) Code generation method, device, equipment and medium
US20200097260A1 (en) Software application developer tools platform
US9569516B2 (en) Method and device for executing an enterprise process
US11977872B2 (en) Method and system for code maintenance
US10698666B2 (en) Automatically building software projects
CN113377342B (en) Project construction method and device, electronic equipment and storage medium
CN115794214B (en) Application module metadata management method, device, storage medium and apparatus
CN112835568A (en) Project construction method and device
CN111352631A (en) Interface compatibility detection method and device
US10540397B2 (en) Algorithm to check compatibility of business object types to prevent business catalog corruption on resource update
CN115904381A (en) Method and device for establishing dependency relationship and storage medium
CN115291935A (en) Component updating method, component updating device, equipment and storage medium
CN114527993A (en) Application deployment method, device, equipment and medium
CN114253595A (en) Code warehouse management method and device, computer equipment and storage medium
Team Writing R extensions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination