CN110659020A - 用于在多仓库环境下动态构建项目架构的实现方法、操作方法及装置 - Google Patents
用于在多仓库环境下动态构建项目架构的实现方法、操作方法及装置 Download PDFInfo
- Publication number
- CN110659020A CN110659020A CN201910933897.6A CN201910933897A CN110659020A CN 110659020 A CN110659020 A CN 110659020A CN 201910933897 A CN201910933897 A CN 201910933897A CN 110659020 A CN110659020 A CN 110659020A
- Authority
- CN
- China
- Prior art keywords
- git
- project
- warehouse
- file
- architecture
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于在多仓库环境下动态构建项目架构的实现方法,其包括:响应于接收到的执行指令,获取预先配置的自定义清单文件进行解析,生成解析结果;根据解析结果获取工程代码,构建项目架构。本发明还提供了一种用于在多仓库环境下动态构建项目架构的装置和操作方法,根据本发明的装置和方法,可以通过解析自定义清单文件来实现项目架构的构建,能够满足用户的不同构建需求,方便灵活。另外,本发明还提供了解决多仓库管理难题的解决方案。
Description
技术领域
本发明涉及项目管理技术领域,特别是一种用于在多仓库环境下动态构建项目架构的实现方法、操作方法及装置。
背景技术
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git仓库一般包括仓库目录和工作目录,仓库目录用于保存项目工程的历史信息和修改记录,而工作目录则用于保存项目工程的当前版本信息。对于传统的开发,一个项目工程的Git仓库目录(默认为.git目录)是位于工作目录下的,但随着人们需求的多样化和项目工程的复杂化发展,项目工程逐渐向多仓库形式发展,而由于Git本身还支持将一个项目工程的Git仓库目录和工作目录分开存放,因而就产生了同一项目工程包括多个Git仓库,而不同的Git仓库的仓库目录和工作目录既有分开存放的,也有仓库目录是存放于工作目录下的。Git虽然能够有效实现项目版本管理,但其针对的是单仓库的管理,而针对多仓库的项目工程,如何有效方便地实现对多个Git仓库的管理日渐成为亟待解决的难题。
另外,目前的版本控制系统在进行项目架构构建时,都是基于特定的配置操作来借助版本控制系统本身提供的功能来实现项目架构的构建,并不能根据用户的需求灵活构建所需的项目架构,这对于日益丰富和复杂的项目开发需求,极为不便。
发明内容
本发明的其中一个目的在于提供一种能够根据用户的需求,自定义实现项目架构构建的解决方案,以灵活动态构建所需的项目架构,解决开发过程中无法定制化项目架构的缺陷。
本发明的另一目的还在于提供一种能够动态地对同一项目工程的多个Git仓库进行管理,以根据需求方便快速地构建项目架构的技术方案,以实现对多仓库的统一管理。
根据本发明的第一方面,提供了一种用于在多仓库环境下动态构建项目架构的实现方法,其包括:响应于接收到的执行指令,获取预先配置的自定义清单文件进行解析,生成解析结果;根据解析结果获取工程代码,构建项目架构。通过解析自定义清单文件来实现项目架构的构建,能够满足用户的不同构建需求,方便灵活。
在一些实施方式中,自定义清单文件包括用于定义Git仓库信息的节点,该节点由Git仓库信息元素组成,每个节点对应一个Git仓库。基于自定义清单文件来定义需要构建的Git仓库,可以实现对Git仓库的动态、按需构建,而且将每个节点对应一个Git仓库,也方便进行解析,实现简单,解析效率高。
在一些实施方式中,Git仓库信息元素包括Git仓库地址、Git仓库分支和Git仓库路径,解析结果包括自定义清单文件中的各Git仓库的信息元素及其内容,根据解析结果获取工程代码,构建项目架构包括:通过解析出的Git仓库地址获取各Git仓库的工程代码;根据解析出的Git仓库分支和Git仓库路径对获取的各Git仓库的工程代码中的gradle文件进行整合,生成用于整合后的gradle文件;执行生成的整合后的gradle文件,以基于自定义清单文件构建出项目架构。由此,可以通过在自定义清单文件中配置多个所需的Git仓库,并基于解析结果对多个Git仓库的工程代码的编译脚本进行整合拼接处理,进而使得多仓库的动态项目构建成为可能,解决大型项目模块化管理时,项目构建和切换困难的缺陷,提高大型项目的管理和研发效率。
在一些实施方式中,Git仓库信息元素还包括Git仓库标识,构建出的项目架构包括与清单文件中的节点一一对应的多个Git仓库,各Git仓库通过Git仓库标识来命名。由此,可以方便地管理和标识Git仓库,提升用户体验和开发效率。
在一些实施方式中,自定义清单文件中还包括用于定义构建模式的操作指令,构建模式包括新建和更新。通过在自定义清单文件中进一步定义构建模式,可以实现对当前项目工程的动态切换或更新,更进一步满足用户的不同构建需求,操作简单,效率高,为用户节省大量的时间。
根据本发明的第二个方面,提供了一种用于在多仓库环境下动态构建项目架构的操作方法,其包括:
根据需求在需要进行构建的当前项目环境中配置自定义清单文件;
在需要进行构建的当前项目环境中配置脚本文件,所述脚本文件用于实现以下功能:响应于执行指令,获取配置的自定义清单文件进行解析,并根据解析结果构建项目架构;
点击运行配置好的脚本文件,实现对当前项目环境的项目架构的动态构建。通过配置自定义清单文件并配置构建脚本文件,能够实现按需一键化定制构建,可重复性高,大幅提升项目构建的效率。
根据本发明的第三个方面,提供了一种用于在多仓库环境下动态构建项目架构的装置,其包括配置模块,用于定义和存储需要获取的Git仓库的信息;和构建模块,用于响应于接收到的执行指令,获取配置模块的内容进行解析,并根据解析结果构建项目架构。由此,可以通过配置模块来定义存储需要构建的Git仓库的信息,并基于构建模块来解析该配置信息,并基于解析结果来进行处理,实现定制化项目架构构建,满足用户不同的需求。
在一些实施方式中,构建模块包括代码获取单元,用于对配置模块的内容进行解析,根据解析结果获取配置的各Git仓库的工程代码,并对各Git仓库的gradle文件进行整合,生成整合后的gradle文件;和编译单元,用于调用所述生成的整合后的gradle文件,执行编译过程,构建生成项目架构。基于解析结果和获取的Git仓库的工程代码来对多仓库场景下的编译文件进行拼接整合,使得多仓库的动态项目架构构建的实现成为可能,有效解决大型项目特别是模块化或定制化项目工程的版本管理问题,使得实时高效切换项目架构成为可能,大大提升研发的效率和便捷性。
根据本发明的第四个方面,提供了一种电子设备,其包括:至少一个处理器,以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述方法的步骤。
根据本发明的第五个方面,提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
附图说明
图1为本发明一实施方式的用于在多仓库环境下动态构建项目架构的实现方法的方法流程图;
图2为图1所示的方法中的构建项目架构的方法流程图;
图3为本发明一实施方式的用于在多仓库环境下动态构建项目架构的操作方法的方法流程图;
图4为本发明另一种实施方式的用于在多仓库环境下动态构建项目架构的装置框图;
图5为本发明一种实施方式的电子设备的框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例的用于在多仓库环境下动态构建项目架构的方法可以应用于任何应用了版本管理的项目工程和具有多仓库的项目工程中,例如,应用到具有定制化研发需求的项目工程中,本发明对此不作限制,从而使得用户能够通过该技术方案方便、高效地动态构建符合自己需求的项目架构,且能够解决多仓库管理的难题。
下面结合附图对本发明作进一步详细的说明。
图1示意性地显示了根据本发明一实施方式的用于在多仓库环境下动态构建项目架构的实现方法的流程图,如图1所示,本实施例包括如下步骤:
步骤S101:响应于接收到的执行指令,获取预先配置的自定义清单文件。在利用本发明实施例的技术方案进行多仓库管理时,可以根据需求在自定义清单文件中配置需要进行构建的项目的信息,这样就可以在接收到用户发出的执行项目构建的指令时,首先读取配置好的自定义清单文件,以根据自定义清单文件执行项目架构的构建,其中读取配置好的自定义清单文件是根据自定义清单文件的存放路径来读取文件内容,自定义清单文件的存放路径可以根据需求存放,优选存放于当前项目工程环境的根目录下,以方便获取。
步骤S102:对获取的自定义清单文件进行解析,生成解析结果。
通过对配置的自定义清单文件进行动态解析,就能够使得通过自定义配置来按需动态构建项目架构成为可能。其中,自定义清单文件的内容和格式对于能否实现该目的,具有至关重要的影响。本发明实施例中,优选地将自定义清单文件的内容配置为包括用于定义Git仓库信息的节点,具体地,该节点优选由Git仓库信息元素组成,并且设置成每个节点对应一个Git仓库。示例性地,为了方便基于对自定义清单文件的解析结果来进行项目构建,优选将Git仓库信息元素配置成包括Git仓库地址、Git仓库分支和Git仓库路径。这样,通过对自定义清单文件的内容进行解析,就可以获取到包括各Git仓库的信息元素及其内容的解析结果。
示例性地,自定义清单文件是通过xml文件的形式来实现,其内容可以根据需求配置为如下所示:
<?xml version=“1.0”encoding=“UTF-8”>
<manifest version=“1.0.0”>
<application addr=“https://test111.git”branch=“master”id=“名字1”path=“目录1”>
</application>
<application addr=“https://test222.git”branch=“master”id=“名字2”path=“目录2”>
</application>
<application addr=“https://test333.git”branch=“master”id=“名字3”path=“目录3”>
</application>
</manifest>
上述内容中每个application就为一个节点,其对应了一个Git仓库,addr、branch、id和path则为该节点包括的元素,其分别对应了Git仓库地址、Git仓库分支、Git仓库标识和Git仓库路径。这样,在配置好了自定义清单文件后,就可以通过读取xml的内容,根据节点名和元素名来对文件内容进行解析,从而得到相应的解析结果。对xml文件进行解析可以通过现有技术实现,由于xml采用结构化的数据结构来定义文件内容,因为对其进行解析非常容易实现,使得通过自定义的方式来实现动态项目架构的构建实现起来也相对快捷、高效。作为一种优选实施例,采用python脚本对自定义清单文件进行解析,实现简单。由此,就可以通过对自定义清单文件的解析,得到包含Git仓库地址、Git仓库分支、Git仓库标识和Git仓库路径的解析结果。
步骤S103:根据解析结果获取工程代码,构建项目架构。
在实现了对自定义清单文件的解析后,就可以根据解析结果来动态构建项目架构。对于单仓库的项目工程来说(配置的节点即Git仓库只有一个),在得到解析结果后,直接根据Git仓库地址获取工程代码,并执行工程代码中的gradle文件进行编译,即可快速构建出符合需求的项目架构。但是对于多仓库的项目构建来说,由于配置的节点即Git仓库有多个,这种情况下每个Git仓库都是一个独立的功能模块,其工程代码下都会对应一个gradle文件,如何执行gradle文件来实现对多仓库的项目的构建就成为了一个难题,这也是实现多仓库项目构建的难点。为了解决该问题,发明人经过多次实践和尝试,想到在自定义清单文件中定义待构建的项目工程的根目录,并在获取了多仓库的工程代码后,通过整合多仓库的gradle文件,形成一个可编译的整合后的gradle文件来实现项目编译,从而构建出项目架构的解决方案。图2示意性地显示了根据本发明一实施方式的在获取了多个Git仓库的工程代码后构建项目架构的方法流程,如图2所示,该方法包括
步骤S1031:通过解析出的Git仓库地址获取各Git仓库的工程代码。由于在自定义清单文件中配置的addr元素记录了Git仓库的代码地址,如上例中的https://test333.git 即为一个Git仓库的代码地址,因而根据解析结果通过调用Git代码管理的命令如pull命令,即可将该代码地址上的工程代码获取到本地。
步骤S1032:根据解析出的Git仓库分支和Git仓库路径对获取的各Git仓库的工程代码中的gradle文件进行整合,生成用于整合后的gradle文件。在获取了工程代码后,就可以在每个工程代码下找到一个gradle文件,这个gradle文件是对应于该工程代码的,因而其内的编译地址对应的是引用的工程目录的绝对路径,本发明实施例在获取了各Git仓库的工程代码后,会将其放在当前项目工程环境的特定目录下,发明人想到通过在自定义清单文件中配置的branch元素和path元素来记录Git仓库的工程代码在本地的存放路径,这样的话,就可以通过各gradle文件中的绝对路径和配置的branch元素及path元素来定义Git仓库的工程代码在本地的相对路径,即通过读取各gradle文件中的绝对路径和其对应的branch元素及path元素内容来将各Git仓库的gradle文件中的绝对路径转化为相应的相对路径,并通过拼接所有的Git仓库的gradle文件并将其存储在同一个gradle文件中,从而形成整合后的同一个gradle文件,该整合后的gradle文件包含了自定义清单文件中配置的所有的Git仓库的编译地址。
步骤S1033:执行生成的整合后的gradle文件,以基于所述自定义清单文件构建出项目架构。在完成gradle文件的整合后,通过调用执行gradle文件的指令,即可对获取的全部工程代码进行编译,从而实现项目架构的构建,以上述配置的自定义清单文件为例,构建出的项目架构如下所示:
└──lyra-auto
├──build
├──名字1
├──名字2
├──名字3
├──init.py
├──build.gradle
其中,lyra-auto为当前所在项目工程的项目名称,是需要进行项目架构构建的整个项目的根目录。名字1为自定义清单文件里面的Git仓库标识的值,即构建出的项目架构包括与清单文件中的节点一一对应的多个Git仓库,各Git仓库通过Git仓库标识来命名。init.py为用于执行步骤S101~步骤S103方法内容的python脚本,也即是步骤S101~步骤S103的方法步骤通过python脚本实现,并将其配置在当前所在项目工程的根目录下,在配置好自定义清单文件后,通过点击运行该脚本文件即可自动实现整个构建过程,得到上述的项目架构。build.gradle为整合后的gradle文件,也为编译脚本,python脚本在执行过程中通过gradle文件拼接整合会生成该文件,并在整合后调用该脚本文件,以实现项目的编译。
这样,通过上述的方法过程,用户就可以通过在自定义清单文件中配置自己需要构建的Git仓库,通过对清单文件的解析来获取工程代码,并通过拼接来整合多个Git仓库的gradle文件,从而实现对多仓库的项目工程的动态构建,实现简单方便,效率高,能够有效解决大型项目代码复杂,不方便管理和不方便模块化的缺陷,让开发者从大型项目中化整为零,处理更简单高效。
作为一种优选实现例,自定义清单文件中还包括用于定义构建模式的操作指令,构建模式包括新建和更新。示例性地,当选择构建模式为新建时,可以在上述自定义清单文件中通过python脚本加入delete的指令,这样在进行项目架构的构建时,会删除当前项目工程环境中的已有工程代码,从而构建出一个全新的项目架构,实现项目的不同版本或不同功能模块间的动态切换。而当选择构建模式为更新时,可以在上述自定义订单文件中通过python脚本加入update的指令,这样在进行项目架构的构建时,会保留当前项目工程环境中的已有工程代码,从而实现对原有的项目架构的更新,并将所需的新内容整合其中,以满足用户不同场景下的开发需求。
图3示意性地显示了根据本发明一实施方式的用于在多仓库环境下动态构建项目架构的操作方法的方法流程,如图3所示,该方法包括如下步骤:
步骤S301:根据需求在需要进行构建的当前项目环境中配置自定义清单文件。示例性地,如上例所示,配置的自定义清单文件可以是xml文件,即上述的build文件,通过对其内容进行按需编辑,并将其存放在当前项目环境的根目录下,即实现对自定义清单文件的配置。
步骤S302:在需要进行构建的当前项目环境中配置脚本文件。其中,该脚本文件即是用于实现上述步骤S101~步骤S103的方法内容的脚本文件,如上例所示其可以是python脚本文件,如上述的init.py文件,通过代码实现步骤S101~步骤S103的方法内容生成python脚本文件并将其放置在当前项目环境的根目录下即可实现对其的配置。
步骤S303:点击运行配置好的脚本文件,实现对当前项目环境的项目架构的动态构建,即通过点击init.py文件来实现对当前项目的动态构建,得到符合自定义需求的项目架构。
通过上述方法,即可以实现对多仓库的项目工程的动态构建,简单方便,有效解决大型项目进行模块化开发或定制化开发等时可能产生多个Git仓库,却无法实现对多仓库的有效管理的问题。
图4示意性地显示了根据本发明一实施方式的用于在多仓库环境下动态构建项目架构的装置,如图4所示,
该用于在多仓库环境下动态构建项目架构的装置包括用于定义和存储需要获取的Git仓库的信息配置模块40和用于实现动态的项目构建的构建模块41。其中,具体地,配置模块40实现为上述的自定义清单文件,而构建模块实现为上述的python脚本文件,其用于执行响应于接收到的执行指令,获取配置模块的内容进行解析,并根据解析结果构建项目架构的功能。
具体地,根据需求,构建模块可以实现为包括代码获取单元411和编译单元412。代码获取单元411用于对配置模块40的内容进行解析,根据解析结果获取配置的各Git仓库的工程代码,并对各Git仓库的gradle文件进行整合,生成整合后的gradle文件;编译单元412用于调用生成的整合后的gradle文件,执行编译过程,构建生成符合需求的项目架构。其中,自定义清单文件的内容和配置方式,代码获取单元411执行解析并根据解析结果获取工程代码,进而进行gradle文件拼接整合,以及编译单元412执行编译的实现过程可以参照方法部分的叙述,在此不再赘述。
根据本实施例的装置可以通过对自定义清单文件的配置实现按需求来构建项目架构,并且还能够通过解析自定义清单文件及拼接多个仓库的编译文件,来实现对项目的多个Git仓库的动态构建,能够有效解决大型项目代码复杂,不方便管理和不方便模块化的缺陷,让开发者从大型项目中化整为零,处理更简单高效。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述用于在多仓库环境下动态构建项目架构的实现方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当所程序指令被计算机执行时,使计算机执行上述用于在多仓库环境下动态构建项目架构的实现方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被所述至少一个处理器执行,以使至少一个处理器能够执行上述用于在多仓库环境下动态构建项目架构的实现方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时能够执行上述用于在多仓库环境下动态构建项目架构的实现方法。
上述本发明实施例的用于在多仓库环境下动态构建项目架构的装置可用于执行本发明实施例的用于在多仓库环境下动态构建项目架构的实现方法,并相应的达到上述本发明实施例的实现用于在多仓库环境下动态构建项目架构的实现方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
图5是本申请另一实施例提供的执行用于在多仓库环境下动态构建项目架构的实现方法的电子设备的硬件结构示意图,如图5所示,该设备包括:
一个或多个处理器510以及存储器520,图5中以一个处理器510为例。
执行用于在多仓库环境下动态构建项目架构的实现方法的设备还可以包括:输入装置530和输出装置540。
处理器510、存储器520、输入装置530和输出装置540可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器520作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的用于在多仓库环境下动态构建项目架构的实现方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于在多仓库环境下动态构建项目架构的实现方法。
存储器520可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于在多仓库环境下动态构建项目架构的装置的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器520可选包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至用于在多仓库环境下动态构建项目架构的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可接收输入的数字或字符信息,以及产生与用于在多仓库环境下动态构建项目架构的装置的用户设置以及功能控制有关的信号。输出装置540可包括显示屏等显示设备。
上述一个或者多个模块存储在所述存储器520中,当被所述一个或者多个处理器510执行时,执行上述任意方法实施例中的用于在多仓库环境下动态构建项目架构的实现方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.用于在多仓库环境下动态构建项目架构的实现方法,其特征在于,包括
响应于接收到的执行指令,获取预先配置的自定义清单文件进行解析,生成解析结果;
根据所述解析结果获取工程代码,构建项目架构。
2.根据权利要求1所述的实现方法,其特征在于,所述自定义清单文件包括用于定义Git仓库信息的节点,所述节点由Git仓库信息元素组成,每个节点对应一个Git仓库。
3.根据权利要求2所述的方法,其特征在于,所述Git仓库信息元素包括Git仓库地址、Git仓库分支和Git仓库路径,所述解析结果包括所述自定义清单文件中的各Git仓库的信息元素及其内容,所述根据所述解析结果获取工程代码,构建项目架构包括
通过解析出的Git仓库地址获取各Git仓库的工程代码;
根据解析出的Git仓库分支和Git仓库路径对获取的各Git仓库的工程代码中的gradle文件进行整合,生成用于整合后的gradle文件;
执行生成的整合后的gradle文件,以基于所述自定义清单文件构建出项目架构。
4.根据权利要求3所述的方法,其特征在于,所述Git仓库信息元素还包括Git仓库标识,所述构建出的项目架构包括与清单文件中的节点一一对应的多个Git仓库,各Git仓库通过所述Git仓库标识来命名。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述自定义清单文件中还包括用于定义构建模式的操作指令,所述构建模式包括新建和更新。
6.用于在多仓库环境下动态构建项目架构的操作方法,其特征在于,
根据需求在需要进行构建的当前项目环境中配置自定义清单文件;
在所述需要进行构建的当前项目环境中配置脚本文件,所述脚本文件用于实现以下功能:
响应于执行指令,获取配置的自定义清单文件进行解析,并根据解析结果构建项目架构;
点击运行配置好的脚本文件,实现对当前项目环境的项目架构的动态构建。
7.用于在多仓库环境下动态构建项目架构的装置,其特征在于,包括
配置模块,用于定义和存储需要获取的Git仓库的信息;和
构建模块,用于响应于接收到的执行指令,获取所述配置模块的内容进行解析,并根据解析结果构建项目架构。
8.根据权利要求7所述的装置,其特征在于,所述构建模块包括
代码获取单元,用于对所述配置模块的内容进行解析,根据解析结果获取配置的各Git仓库的工程代码,并对各Git仓库的gradle文件进行整合,生成整合后的gradle文件;和
编译单元,用于调用所述生成的整合后的gradle文件,执行编译过程,构建生成项目架构。
9.电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任意一项所述方法的步骤。
10.存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910933897.6A CN110659020A (zh) | 2019-09-29 | 2019-09-29 | 用于在多仓库环境下动态构建项目架构的实现方法、操作方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910933897.6A CN110659020A (zh) | 2019-09-29 | 2019-09-29 | 用于在多仓库环境下动态构建项目架构的实现方法、操作方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110659020A true CN110659020A (zh) | 2020-01-07 |
Family
ID=69039888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910933897.6A Withdrawn CN110659020A (zh) | 2019-09-29 | 2019-09-29 | 用于在多仓库环境下动态构建项目架构的实现方法、操作方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659020A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342779A (zh) * | 2021-06-23 | 2021-09-03 | 深圳兆日科技股份有限公司 | 项目更新方法、装置及计算机可读存储介质 |
CN113703754A (zh) * | 2021-07-20 | 2021-11-26 | 青岛海尔科技有限公司 | 项目工程结构动态构建方法、装置、存储介质及电子装置 |
-
2019
- 2019-09-29 CN CN201910933897.6A patent/CN110659020A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342779A (zh) * | 2021-06-23 | 2021-09-03 | 深圳兆日科技股份有限公司 | 项目更新方法、装置及计算机可读存储介质 |
CN113703754A (zh) * | 2021-07-20 | 2021-11-26 | 青岛海尔科技有限公司 | 项目工程结构动态构建方法、装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cantelon et al. | Node. js in Action | |
Javed | Building Arduino Projects for the Internet of Things | |
CN104572042A (zh) | 移动终端设备的跨平台中间件装置及其实现方法 | |
CN111708557B (zh) | 更新配置文件的方法、设备及存储介质 | |
CN111111201B (zh) | 一种基于游戏的技能创建方法、装置、服务器及介质 | |
CN109754072B (zh) | 网络离线模型的处理方法、人工智能处理装置及相关产品 | |
CN110780874B (zh) | 用于生成信息的方法和装置 | |
CN111159047A (zh) | 具有可视化界面的Android设备辅助调试装置及其操作方法 | |
WO2017217644A2 (ko) | 비 개발자 중심의 어플리케이션 플랫폼으로 구성되는 시스템 | |
CN110659020A (zh) | 用于在多仓库环境下动态构建项目架构的实现方法、操作方法及装置 | |
CN111399840A (zh) | 一种模块开发方法及装置 | |
CN111694564A (zh) | Flutter混合模式的编译方法、装置、设备和介质 | |
CN111984248A (zh) | 页面编辑方法和装置、存储介质及电子装置 | |
CN112068879B (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 | |
WO2024066825A1 (zh) | 页面项目开发方法、装置、设备、介质及产品 | |
JP6986590B2 (ja) | 音声スキル作成方法、音声スキル作成装置、電子機器及び記憶媒体 | |
You et al. | A comparative study of cross-platform mobile application development | |
CN112631563A (zh) | 基于框架的系统开发方法、装置、计算机设备及存储介质 | |
Hamza et al. | TCAIOSC: application code conversion | |
CN115268861B (zh) | 自定义组件的引入方法、系统、设备和存储介质 | |
CN113282268B (zh) | 音效配置方法和装置、存储介质及电子设备 | |
CN115858078A (zh) | 特效渲染方法、装置、材质制作系统、设备及存储介质 | |
CN114489607A (zh) | 跨栈应用处理与页面渲染方法、装置、设备及存储介质 | |
CN111666068B (zh) | 一种平台开发框架、构建方法、设备及介质 | |
CN108804088A (zh) | 协议处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant after: Sipic Technology Co.,Ltd. Address before: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant before: AI SPEECH Ltd. |
|
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200107 |