CN117093255A - 应用程序的版本构建方法 - Google Patents

应用程序的版本构建方法 Download PDF

Info

Publication number
CN117093255A
CN117093255A CN202310961760.8A CN202310961760A CN117093255A CN 117093255 A CN117093255 A CN 117093255A CN 202310961760 A CN202310961760 A CN 202310961760A CN 117093255 A CN117093255 A CN 117093255A
Authority
CN
China
Prior art keywords
application program
version
target item
file
version construction
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
CN202310961760.8A
Other languages
English (en)
Inventor
方海波
梁家鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
Original Assignee
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology 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 Zhejiang Geely Holding Group Co Ltd, Zhejiang Zeekr Intelligent Technology Co Ltd filed Critical Zhejiang Geely Holding Group Co Ltd
Priority to CN202310961760.8A priority Critical patent/CN117093255A/zh
Publication of CN117093255A publication Critical patent/CN117093255A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

本申请提供一种应用程序的版本构建方法,用于基于maven项目编写的应用程序对应的目标项目,所述方法包括:在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数;接收针对应用程序的版本构建请求,从所述描述文件中获取所述版本构建参数;针对所述目标项目进行编译,并在编译过程中将所述版本构建参数写入所述目标项目的配置文件,以完成针对所述应用程序的版本构建。

Description

应用程序的版本构建方法
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序的版本构建方法、装置、电子设备及可读存储介质。
背景技术
在应用程序的开发过程中,应用程序的版本构建是应用程序的开发过程中不可缺少的一个环节。应用程序的版本构建是指将开发人员写好的源代码编译为可执行的程序包。在将源代码编译为程序包后,可以将程序包部署在操作系统以运行所述应用程序。
当应用程序出现问题需要排查代码的相关问题时,通过需要追溯应用程序构建时的相关信息,例如代码版本,代码构建机器,构建环境,构建时间等等。而在现有的应用程序开发流程中,通常是通过查询应用程序的版本构建系统,获取应用程序的版本构建相关日志信息。
发明内容
本申请提供一种应用程序的版本构建方法,应用于车辆上搭载的自动驾驶系统,所述方法包括:
在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数;
接收针对应用程序的版本构建请求,从所述描述文件中获取所述版本构建参数;
针对所述目标项目进行编译,并在编译过程中将所述版本构建参数写入所述目标项目的配置文件,以完成针对所述应用程序的版本构建。
可选的,在编译过程中将所述版本构建参数写入所述目标项目的配置文件,包括:
构建命令行,在编译过程中通过所述命令行将所述版本构建参数写入至所述目标项目的配置文件。
可选的,在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数之前,所述方法还包括:
根据与所述应用程序对应的目标项目的地址,从源代码仓库中获取所述目标项目的项目源码。
可选的,针对所述目标项目进行编译之前,所述方法还包括:
确定与所述目标项目对应的项目源码中是否包含配置文件;
如果不包含所述配置文件,在与所述目标项目对应的项目源码中新建配置文件。
可选的,所述方法还包括:
获取所述应用程序的配置文件,并从所述配置文件中读取版本构建参数,以针对所述应用程序进行问题排查。
可选的,所述配置文件包括properties文件或yml文件;所述描述文件包括pom文件。
可选的,所述版本构建参数包括应用程序的版本号、应用程序的源代码的代码分支,应用程序的版本构建的构建日期。
本申请还提供一种应用程序的版本构建装置,应用于车辆上搭载的自动驾驶系统,所述装置包括:
信号接收单元,用于接收用户通过移动终端发送的控制所述车辆移动方向的控制信号;
信息获取单元,用于获取所述车辆上搭载的传感器采集到的与所述车辆对应的周边环境信息;
路线生成单元,用于根据所述车辆周边环境信息以及所述控制信号生成车辆移动路线,并基于所述车辆移动路线移动车辆。
本申请还提供一种应用程序的版本构建装置,应用于基于maven项目编写的应用程序对应的目标项目,所述装置包括:
参数添加单元,用于在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数;
参数获取单元,用于接收针对应用程序的版本构建请求,从所述描述文件中获取所述版本构建参数;
版本构建单元,用于针对所述目标项目进行编译,并在编译过程中将所述版本构建参数写入所述目标项目的配置文件,以完成针对所述应用程序的版本构建。
可选的,所述版本构建单元,进一步用于构建命令行,在编译过程中通过所述命令行将所述版本构建参数写入至所述目标项目的配置文件。
可选的,在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数之前,所述装置还包括:
项目获取单元,用于根据与所述应用程序对应的目标项目的地址,从源代码仓库中获取所述目标项目的项目源码。
可选的,针对所述目标项目进行编译之前,所述装置还包括:
文件新建单元,用于确定与所述目标项目对应的项目源码中是否包含配置文件;
如果不包含所述配置文件,在与所述目标项目对应的项目源码中新建配置文件。
可选的,所述装置还包括:
问题排查单元,用于获取所述应用程序的配置文件,并从所述配置文件中读取版本构建参数,以针对所述应用程序进行问题排查。
可选的,所述配置文件包括properties文件或yml文件;所述描述文件包括pom文件。
可选的,所述版本构建参数包括应用程序的版本号、应用程序的源代码的代码分支,应用程序的版本构建的构建日期。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
在以上实施例记载的方案中,在版本构建时,将相关的版本构建参数注入到项目代码的配置文件中,由此完成针对应用程序的版本构建。在应用程序运行时,可以通过查询所述配置文件快速获取版本构建参数,由此可以方便问题排查。
附图说明
图1是一示例性实施例提供的一种应用程序的版本构建方法的流程示意图。
图2是一示例性实施例提供的一种应用程序的版本构建方法的应用流程示意图。
图3是一示例性的实施例提供的一种应用程序的版本构建装置所在电子设备的硬件结构图。
图4是一示例性的实施例提供的一种应用程序的版本构建装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
现有技术中,将源代码编译为可执行的应用程序包,再将应用程序包部署后,当应用程序出现问题需要排查代码的相关问题时,通过需要追溯应用程序构建时的相关信息。而在现有的应用程序开发流程中,通常是通过查询应用程序的版本构建系统,获取应用程序的版本构建相关日志信息。
通常,与应用程序版本构建相关的信息分散在各个系统中,通常要查询多个系统,才能获取到,而且还需要人工处理各个系统中的信息之间的映射关系,才能获取本次构建部署的相关信息。
同时,应用程序版本构建的构建日志通常较大,从中提取相关信息通常需要耗费大量的时间,影响问题排查的进度。
有鉴于此,本申请提出一种将应用程序版本构建时的将相关版本构建参数注入至应用程序的配置文件的技术方案。
在实现时,可以在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数;
接收针对目标应用程序的版本构建请求,从所述描述文件中获取所述版本构建参数;
针对所述目标项目进行编译,并在编译过程中将所述版本构建参数写入所述目标项目的配置文件,以完成针对所述应用程序的版本构建。
在以上实施例记载的方案中,在版本构建时,将相关的版本构建参数注入到项目代码的配置文件中,由此完成针对应用程序的版本构建。在应用程序运行时,可以通过查询所述配置文件快速获取版本构建参数,由此可以方便问题排查。
请参见图1,图1是一示例性实施例提供的一种应用程序的版本构建方法的流程示意图。所述方法应用于基于maven项目编写的应用程序对应的目标项目。
为了便于理解,下面先对maven项目进行描述。
Maven是Apache组织下的一个跨平台的项目管理工具,它主要用来帮助实现项目的构建、测试、打包和部署。Maven提供了标准的软件生命周期模型和构建模型,通过配置就能对项目进行全面的管理。它的跨平台性保证了在不同的操作系统上可以使用相同的命令来完成相应的任务。Maven将构建的过程抽象成一个个的生命周期过程,在不同的阶段使用不同的已实现插件来完成相应的实际工作,这种设计方法极大的避免了设计和脚本编码的重复,极大的实现了复用。
普通的Java项目如果依赖其他的项目,需要手动把依赖的jar包复制到lib下,而且如果依赖的jar包升级,我们就需要重新复制jar包到lib下,操作麻烦,而且不容易管理。但是使用Maven项目的话,我们只需要在pom文件中维护依赖jar包的坐标即可。帮我们轻松解决了版本不一致,版本冲突,依赖臃肿等问题。也即在maven项目中,开发者通常可以在pom文件中预先维护相关的版本构建信息。
所述方法可以包括以下步骤:
步骤102,在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数。
在本说明书,所述目标项目可以指待构建的应用程序的源代码。其中,所述目标项目可以是基于maven项目进行构建的,在maven项目中,通常可以包括描述文件,也即POM文件。
POM(Project Object Model)文件是Maven项目的核心文件之一。它是一个XML文件,描述了项目的基本信息、依赖项、构建和发布等信息。POM文件是Maven的重要组成部分,可以帮助开发者管理和构建项目。在使用Maven进行项目构建时,需要根据项目的需要配置POM文件。
在本说明书中,在针对目标项目进行应用程序的版本构建之前,可以将版本构建参数添加至描述文件中。
所述版本构建参数具体可以是应用程序的版本号、应用程序的源代码的代码分支,应用程序的版本构建的构建日期等等。开发者可以根据实际需要,将后续可能需要使用的版本构建参数添加至目标项目的描述文件中,在本说明书中不做具体限定。
在实际应用中,可以在maven项目中使用properties标签在pom文件中添加与版本构建参数对应的属性。
例如,格式如下,
<properties>
<application.version>v12.09</java.version>
<application.branch>release-1209</application.branch>>
<application.buiddate>2022/0202</application.buiddate>
</properties>
可以用application.version表示应用程序的版本号,可以用application.branch表示应用程序的源代码的代码分支,可以用application.buiddate表示应用程序的版本构建的构建日期。
在maven项目中,pom文件中properties标签中的属性,可以以${x}的方式在pom文件之外的地方进行引用。
步骤104,接收针对应用程序的版本构建请求,从所述描述文件中获取所述版本构建参数。
在本说明书中,用户可以通过与目标项目对应的版本构建系统发送针对应用程序的版本构建请求。
在实际应用中,所述与目标项目对应的版本构建系统通过可以指集成开发环境(IDE,Integrated Development Environment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
用户通过所述集成开发环境提供的界面针对已经编写好的目标项目的源代码进行编译打包,完成针对应用程序的版本构建。
所述版本构建系统可以接收针对应用程序的版本构建请求,并从描述文件中获取开发者预先在描述文件中添加的版本构建参数。
步骤106,针对所述目标项目进行编译,并在编译过程中将所述版本构建参数写入所述目标项目的配置文件,以完成针对所述应用程序的版本构建。
在本说明书中,所述配置文件中可以保存应用程序版本构建时一系列的配置项的值,在构建配置文件时,开发者可以为不同的环境,构建不同的配置文件。
在maven项目中,所述配置文件通常可以包括properties文件或yml文件。properties文件或yml文件通常可以保存相同的配置,当这两个配置文件中出现相同的配置时,会优先执行properties文件中的配置,然后再执行yml文件中的配置。相比于properties文件,yml文件天然支持中文字符,而properties文件默认是不支持中文字符的,如果不进行字符配置,输入中文字符就会乱码。
所述版本构建系统从所述Pom文件中获取版本构建参数后,可以针对所述目标项目进行编译,并在编译过程中,将所述版本构建参数写入properties文件或yml文件,并生成应用程序的程序包。
当用户将所述程序包部署在操作系统后,可以通过获取配置文件properties文件或yml文件并读取其中的版本构建参数,即可以快速获取应用程序版本构建时的相关信息,而无需查询应用程序的版本构建系统,获取应用程序的版本构建日志信息。
在一种实施方式中,开发者可以通过构建命令行的形式,在编译过程中通过所述命令行将所述版本构建参数写入至所述目标项目的配置文件。在maven项目中,maven提供了许多命令行参数,这些参数可以帮助开发人员更好地管理和控制他们的项目,使用命令行进行操作,非常简洁、高效。
例如,在实际应用中,可以使用如下命令:
Mvn clean packageDmaven.test.skip=true
-DDapplication.version=echo$(BUILD_VERSION)
-DDapplication.branch=echo$(BUILD_BRANCH)
-DDapplication.date=echo$(BUILD_DATE)
通过所述命令行,可以在编译过程中,获取开发者预先在描述文件中添加的版本构建参数,并进一步添加至目标项目的配置文件中。
在一种实施方式中,在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数之前。所述版本构建系统可以根据目标项目对应的地址,在源代码仓库获取目标项目源码。
所述源代码仓库具体可以是分布式的版本控制系统,例如git系统。开发可以使用相关的git命令,从源代码仓库获取目标项目的源码。
例如,所述开发者可以项目代码管理平台gitlab中通过过git clone命获取项目源代码。
在一种实施方式中,针对所述目标项目进行编译之前,可以进一步确定所述目标项目对应的项目源码中是否包含所述配置文件。
在实际应用中,所述目标项目中通过都会包含所述配置文件,但也可以能在获取目标项目的项目源码时因为传输等相关问题,导致所述目标项目的配置文件丢失。
确定所述目标项目对应的项目源码中是否包含所述配置文件的具体方式在本说明书中不做具体限定。例如,开发者可以通过编写相应的自动化脚本,在获取目标项目的项目源码时检查项目结构,确定是否包含所述配置文件。或者,可以直接搜索目标项目中是否包含所述配置文件,由于在maven项目中,配置文件的文件名是固定的,因此可以直接基于配置文件的文件名“application.properties”以及“application.yml”进行检索。
如果目标项目的项目源码中不包含所述配置文件,可以在与所述目标项目对应的项目源码中新建配置文件。
在实际应用中,既可以创建properties文件,也可以创建yml文件,在本说明书中不做具体限定。
在一种实施方式中,还可以检测配置文件是否包括与所述版本构建参数的变量。如果没有与所述版本构建参数的变量,所述版本构建系统可以在所述配置文件中自动创建与所述版本构建参数对应的变量。
所述配置文件中,与所述版本构建参数对应的变量的格式如下:
application.vsersion=@application.vesion@
application.branch=@application.branch@
application.buiddate=@application.buiddate@
在实际应用中,properties文件和yml文件的语法规则并不相同,properties文件是以key-value形式来创建与版本构建参数对应的变量,而yml文件是以xml格式来创建与版本构建参数对应的变量。
在所述配置文件中创建与版本构建参数对应的变量之后,所述版本构建系统可以在编译过程中,将所述版本构建参数的取值写入所述目标项目的配置文件与所述版本构建参数对应的变量中。由此所述配置文件中可以自动注入了与所述版本构建参数对应的变量。
在一种实施方式中,当应用程序在部署后出现问题时,可以获取所述应用程序的配置文件,并从所述配置文件中读取版本构建参数,以针对所述应用程序进行问题排查。
在实际应用中,可以通过在项目代码中增加版本构建参数输出接口,由此在应用程序中调用所述接口即可以直接获取相关的版本构建参数。
其中,所述版本构建参数输出接口的核心代码如下:
Properties properties=PropertiesLoaderUtils.loadAllProperties("application.properties");
String version=properties.getProperty("version");
String branch=properties.getProperty("branch");<
String builddate=properties.getProperty("builddate");
System.out.printIn(version);
System.out.println(branch);
System.out.printIn(buiddate)。
所述版本构建参数输出接口也可以进一步集成到目标项目的日志框架中,并以应用程序的日志的形式进行输出。通过查询所述日志,也可以快速的获取到应用程序版本构建的相关信息,从而辅助问题排查。.
所述版本构建参数输出接口也可以集成到应用程序的健康检查接口,当程序出现问题时,通过查询所述健康检查接口,也可以快速获取到应用程序版本构建的相关信息,辅助问题排查。
下面一个具体的实施例,阐述所述应用程序的版本构建方法。
请参见图2,图2是一示例性实施例提供的一种应用程序的版本构建方法的应用流程示意图。
如图2所示,首先可以根据与所述应用程序对应的目标项目的地址,从源代码仓库中获取所述目标项目的项目源码。例如,可以从gitlab中通过过git clone命获取项目源代码。
在获取到项目源码后,可以在目标项目的描述文件中通过properties标签在pom文件中添加版本构建参数,如应用程序的版本号、源代码的代码分支、应用程序的版本构建的构建日期等等。
例如,pom文件中的properties标签如下。
<properties>
<application.version>v12.09</java.version>
<application.branch>release-1209</application.branch>>
<application.buiddate>2022/0202</application.buiddate>
</properties>
进一步可以确定所述目标项目的项目源码中是否包含配置文件,如果不包含所述配置文件,可以创建配置文件application.properties或者application.yml。
同时,可以在所述配置文件中创建与所述版本构建参数对应的变量,与所述版本构建参数对应的变量的格式如下:
application.vsersion=@application.vesion@
application.branch=@application.branch@
application.buiddate=@application.buiddate@
进一步所述版本构建系统可以针对所述目标项目进行编译,并在编译过程中通过命令行,将目标项目的描述文件中的版本构建参数写入目标项目的配置文件中,以完成针对所述应用程序的版本构建。
例如,所述命令行的格式如下:
Mvn clean packageDmaven.test.skip=true
-DDapplication.version=echo$(BUILD_VERSION)
-DDapplication.branch=echo$(BUILD_BRANCH)
-DDapplication.date=echo$(BUILD_DATE)
针对所述应用程序的版本构建完成后,当所述目标应用程序出现问题时,可以通过获取所述配置文件并读取所述配置文件中的版本构建参数,以进一步获取应用程序版本构建时的相关信息,从而进行问题排查。
在以上实施例记载的方案中,在版本构建时,将相关的版本构建参数注入到项目代码的配置文件中,由此完成针对应用程序的版本构建。在应用程序运行时,可以通过查询所述配置文件快速获取版本构建参数,由此可以方便问题排查。
上述应用程序的版本构建方法的实施例对应的,本说明书还提供了应用程序的版本构建装置的实施例。
请参见图3,图3是一示例性的实施例示出的一种应用程序的版本构建装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器302、内部总线304、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器303从非易失性存储器310中读取对应的计算机程序到内存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图4,图4是一示例性的实施例示出的一种应用程序的版本构建装置的框图。应用程序的版本构建装置可以应用于图3所示的电子设备中,以实现本说明书的技术方案。其中,上述应用程序的版本构建装置可以包括:
参数添加单元402,用于在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数;
参数获取单元404,用于接收针对应用程序的版本构建请求,从所述描述文件中获取所述版本构建参数;
版本构建单元406,用于针对所述目标项目进行编译,并在编译过程中将所述版本构建参数写入所述目标项目的配置文件,以完成针对所述应用程序的版本构建。
在本实施例中,所述版本构建单元,进一步用于构建命令行,在编译过程中通过所述命令行将所述版本构建参数写入至所述目标项目的配置文件。
在本实施例中,在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数之前,所述装置还包括:
项目获取单元,用于根据与所述应用程序对应的目标项目的地址,从源代码仓库中获取所述目标项目的项目源码。
在本实施例中,针对所述目标项目进行编译之前,所述装置还包括:
文件新建单元,用于确定与所述目标项目对应的项目源码中是否包含配置文件;
如果不包含所述配置文件,在与所述目标项目对应的项目源码中新建配置文件。
在本实施例中,所述装置还包括:
问题排查单元,用于获取所述应用程序的配置文件,并从所述配置文件中读取版本构建参数,以针对所述应用程序进行问题排查。
在本实施例中,所述配置文件包括properties文件或yml文件;所述描述文件包括pom文件。
在本实施例中,所述版本构建参数包括应用程序的版本号、应用程序的源代码的代码分支,应用程序的版本构建的构建日期。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本说明书还提供了一种计算机可读存储介质的实施例。所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,可以实现本说明书中任意一个实施例提供的所述应用程序的版本构建方法。
本说明书实施例提供的计算机可读存储介质具体可以包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存储器)、EPROM(Erasable Programmable Read-OnlyMemory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable ProgrammableRead-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光纤卡片。也就是,可读存储介质包括可以存储或传输信息的可读介质。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (16)

1.一种应用程序的版本构建方法,应用于基于maven项目编写的应用程序对应的目标项目,所述方法包括:
在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数;
接收针对应用程序的版本构建请求,从所述描述文件中获取所述版本构建参数;
针对所述目标项目进行编译,并在编译过程中将所述版本构建参数写入所述目标项目的配置文件,以完成针对所述应用程序的版本构建。
2.根据权利要求1所述的方法,在编译过程中将所述版本构建参数写入所述目标项目的配置文件,包括:
构建命令行,在编译过程中通过所述命令行将所述版本构建参数写入至所述目标项目的配置文件。
3.根据权利要求1所述的方法,在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数之前,所述方法还包括:
根据与所述应用程序对应的目标项目的地址,从源代码仓库中获取所述目标项目的项目源码。
4.根据权利要求3所述的方法,针对所述目标项目进行编译之前,所述方法还包括:
确定与所述目标项目对应的项目源码中是否包含配置文件;
如果不包含所述配置文件,在与所述目标项目对应的项目源码中新建配置文件。
5.根据权利要求1所述的方法,所述方法还包括:
获取所述应用程序的配置文件,并从所述配置文件中读取版本构建参数,以针对所述应用程序进行问题排查。
6.根据权利要求1所述的方法,所述配置文件包括properties文件或yml文件;所述描述文件包括pom文件。
7.根据权利要求1所述的方法,所述版本构建参数包括应用程序的版本号、应用程序的源代码的代码分支,应用程序的版本构建的构建日期。
8.一种应用程序的版本构建装置,应用于基于maven项目编写的应用程序对应的目标项目,所述装置包括:
参数添加单元,用于在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数;
参数获取单元,用于接收针对应用程序的版本构建请求,从所述描述文件中获取所述版本构建参数;
版本构建单元,用于针对所述目标项目进行编译,并在编译过程中将所述版本构建参数写入所述目标项目的配置文件,以完成针对所述应用程序的版本构建。
9.根据权利要求8所述的装置,所述版本构建单元,进一步用于构建命令行,在编译过程中通过所述命令行将所述版本构建参数写入至所述目标项目的配置文件。
10.根据权利要求8所述的装置,在待构建的与所述应用程序对应的目标项目的描述文件中添加版本构建参数之前,所述装置还包括:
项目获取单元,用于根据与所述应用程序对应的目标项目的地址,从源代码仓库中获取所述目标项目的项目源码。
11.根据权利要求10所述的装置,针对所述目标项目进行编译之前,所述装置还包括:
文件新建单元,用于确定与所述目标项目对应的项目源码中是否包含配置文件;
如果不包含所述配置文件,在与所述目标项目对应的项目源码中新建配置文件。
12.根据权利要求8所述的装置,所述装置还包括:
问题排查单元,用于获取所述应用程序的配置文件,并从所述配置文件中读取版本构建参数,以针对所述应用程序进行问题排查。
13.根据权利要求8所述的装置,所述配置文件包括properties文件或yml文件;所述描述文件包括pom文件。
14.根据权利要求8所述的装置,所述版本构建参数包括应用程序的版本号、应用程序的源代码的代码分支,应用程序的版本构建的构建日期。
15.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1-7任一项所述的方法。
16.一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-7任一项所述的方法。
CN202310961760.8A 2023-08-01 2023-08-01 应用程序的版本构建方法 Pending CN117093255A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310961760.8A CN117093255A (zh) 2023-08-01 2023-08-01 应用程序的版本构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310961760.8A CN117093255A (zh) 2023-08-01 2023-08-01 应用程序的版本构建方法

Publications (1)

Publication Number Publication Date
CN117093255A true CN117093255A (zh) 2023-11-21

Family

ID=88782155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310961760.8A Pending CN117093255A (zh) 2023-08-01 2023-08-01 应用程序的版本构建方法

Country Status (1)

Country Link
CN (1) CN117093255A (zh)

Similar Documents

Publication Publication Date Title
KR101036679B1 (ko) 애트리뷰트를 통하여 제어되는 테스트 케이스 상속
US8145655B2 (en) Generating information on database queries in source code into object code compiled from the source code
EP1782191B1 (fr) Procede de chargement d&#39;un logiciel en langage intermediaire oriente objet dans un appareil portatif
CN108229112A (zh) 一种保护应用程序、应用程序的运行方法以及装置
CN107015841B (zh) 一种程序编译的预处理方法及程序编译设备
CN112286829B (zh) 测试脚本生成方法及装置
US11157249B1 (en) Method and system for identifying and extracting independent services from a computer program
CN116680015B (zh) 函数调用方法、装置、电子设备及可读存储介质
CN113094252B (zh) 测试用例生成方法、装置、计算机设备及存储介质
CN114138281A (zh) 软件工程的编译方法、装置、设备及介质
CN107544811B (zh) IOS平台隐藏dylib文件的方法、存储介质、电子设备及系统
CN111240987B (zh) 移植程序检测方法、装置、电子设备及计算机可读存储介质
CN111625225A (zh) 一种程序指定数据输出方法和装置
CN109409037B (zh) 一种数据混淆规则的生成方法、装置及设备
CN117093255A (zh) 应用程序的版本构建方法
CN110968500A (zh) 一种测试用例的执行方法及装置
JP6717140B2 (ja) 解析プログラム、解析方法、及び解析装置
CN106095667B (zh) 一种快速定位Android敏感功能对应的驱动文件位置的方法
CN117348883A (zh) 基于模板的应用程序编译方法及装置
CN109446091B (zh) 业务实体对象测试方法及装置
CN117251234B (zh) 基于补丁的函数调用方法及装置
CN116955209B (zh) WebAssembly虚拟机的测试方法和装置
CN116820959A (zh) 一种在线调试方法及装置
CN115629764A (zh) 一种Java程序静态编译方法及装置
CN117271346A (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