CN107817978A - 一种可执行文件的生成方法和装置 - Google Patents
一种可执行文件的生成方法和装置 Download PDFInfo
- Publication number
- CN107817978A CN107817978A CN201710901604.7A CN201710901604A CN107817978A CN 107817978 A CN107817978 A CN 107817978A CN 201710901604 A CN201710901604 A CN 201710901604A CN 107817978 A CN107817978 A CN 107817978A
- Authority
- CN
- China
- Prior art keywords
- project files
- unit
- dependence
- plug
- executable file
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种可执行文件的生成方法和装置,应用于NodeJS应用程序;NodeJS应用程序包括package.json模块、第一打包插件和第二打包插件;所述方法包括:采用第一打包插件创建父文件;其中,父文件包括java工程文件及node工程文件;确定node工程文件与java工程文件之间的第一依赖关系;确定第二打包插件与package.json模块的第二依赖关系;当运行package.json模块时,根据第二依赖关系调用第二打包插件将node工程文件打包成第一可执行文件;在储存第一可执行文件的储存目录中,根据第一依赖关系调用第一打包插件将第一可执行文件和java工程文件打包成第二可执行文件;在java应用程序中将node工程文件的可执行文件与java工程文件生成共同的有效的可执行文件,便捷地实现web工程的构建。
Description
技术领域
本发明涉及数据处理的技术领域,特别是涉及一种可执行文件的生成方法和一种可执行文件的生成装置。
背景技术
NodeJS是一种js(Javascript)的解析器,每一种解析器都是一种运行环境,其不但允许js定义各种数据结构,进行各种计算,还允许js使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的js的用途是操作DOM(文档对象模型,DocumentObject Model),浏览器就提供了document之类的内置对象。而运行在NodeJS中的js的用途是操作磁盘文件或搭建HTTP(超文本传输协议,Hyper Text Transfer Protocol)服务器,NodeJS相应提供了http等内置对象。
目前,基于java的Web工程是将js模块、html模块及java模块放在同一目录下,这样就需要进行统一开发、编译;如一般可分为src和webRoot两个目录(例如:系统文件夹、云盘文件夹、缓存区间等),src目录主要存放java工程的文件,如java类文件,而webRoot目录主要存放node工程的文件,如js文件、html文件等,或者,js、html以node工程文件的方式作为server(服务器)单独部署;但是,若需要对两个目录下的node工程文件及java工程文件打包成可执行文件的话,即使将该两种文件放在同一目录下进行打包,在打包后的可执行文件中,工程文件仍然无法正常启动执行,而在两个目录下对node工程文件和java工程文件单独打包成可执行文件,打包后的java可执行文件包无法正常访问node可执行文件包,此时在两个可执行文件之间建立通信接口才能相互通信,通信效率低。
发明内容
本发明实施例提供一种可执行文件的生成方法和相应的一种可执行文件的生成装置,以解决node工程的文件及java工程的文件放在同一目录进行打包,但是在打包后的执行文件中,工程文件仍然无法启动的上述问题。
为了解决上述问题,本发明实施例公开了一种可执行文件的生成方法,应用于NodeJS应用程序;所述NodeJS应用程序包括package.json模块、第一打包插件和第二打包插件;所述方法包括:
采用所述第一打包插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;
确定所述node工程文件与所述java工程文件之间的第一依赖关系;
确定所述第二打包插件与所述package.json模块的第二依赖关系;
当运行所述package.json模块时,根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;
在储存所述第一可执行文件的储存目录中,根据所述第一依赖关系调用所述第一打包插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件。
优选地,所述确定所述node工程文件与所述java工程文件之间的第一依赖关系的步骤包括:
建立所述java工程文件的子文件;
在所述子文件中配置所述node工程文件作为所述java工程文件的依赖项,建立所述node工程文件与所述java工程文件之间的第一依赖关系。
优选地,所述确定所述第二打包插件与所述package.json模块的第二依赖关系的步骤包括:
配置所述第二打包插件作为所述package.json模块的依赖项,建立所述第二打包插件与所述package.json模块之间的第二依赖关系。
优选地,所述方法还包括:
启动所述第二可执行文件建立超文本传输协议服务器http server连接。
优选地,所述第一打包插件包括maven插件或gradle插件;所述第二打包插件包括webpack插件或grunt插件。
本发明实施例还公开了一种可执行文件的生成装置,应用于NodeJS应用程序;所述NodeJS应用程序包括package.json模块、第一打包插件和第二打包插件;所述装置包括:
父文件创建模块,用于采用所述第一打包插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;
第一确定模块,用于确定所述node工程文件与所述java工程文件之间的第一依赖关系;
第二确定模块,用于确定所述第二打包插件与所述package.json模块的第二依赖关系;
第一可执行文件生成模块,用于当运行所述package.json模块时,根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;
第二可执行文件生成模块,用于在储存所述第一可执行文件的储存目录中,根据所述第一依赖关系调用所述第一打包插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件。
优选地,所述第一确定模块包括:
子文件建立子模块,用于建立所述java工程文件的子文件;
第一依赖关系建立子模块,用于在所述子文件中配置所述node工程文件作为所述java工程文件的依赖项,建立所述node工程文件与所述java工程文件之间的第一依赖关系。
优选地,所述第二确定模块包括:
第二依赖关系建立子模块,用于配置所述第二打包插件作为所述package.json模块的依赖项,建立所述第二打包插件与所述package.json模块之间的第二依赖关系。
本发明实施例还公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的可执行文件的生成的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的可执行文件的生成的步骤。
本发明实施例包括以下优点:
本发明实施例中,应用于NodeJS应用程序;所述NodeJS应用程序包括package.json模块、第一打包插件及第二打包插件;采用所述第一打包插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;确定所述node工程文件与所述java工程文件之间的第一依赖关系;确定所述第二打包插件与所述package.json模块的第二依赖关系;当运行所述package.json模块时,根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;在储存所述第一可执行文件的储存目录中,根据所述第一依赖关系调用所述第一打包插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件;本发明实施例中,可以对不同类型的java工程文件及node工程文件先后打包,在java应用程序中将node工程文件的可执行文件与java工程文件生成共同的有效的可执行文件,在运行环境中node工程文件存在依赖项,该可执行文件执行过程中可以正常执行node工程文件,便捷地实现web工程的构建。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图;
图1是本发明实施例的一种可执行文件的生成方法实施例一的步骤流程图;
图2是本发明实施例的一种可执行文件的生成方法实施例二的步骤流程图;
图3是本发明实施例的一种可执行文件的生成装置实施例的结构框图。
具体实施方式
为了使本发明实施例所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明实施例进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,示出了本发明实施例的一种可执行文件的生成方法实施例一的步骤流程图,应用于NodeJS应用程序;所述NodeJS应用程序包括package.json模块、第一打包插件和第二打包插件,具体可以包括如下步骤:
步骤101,采用所述第一打包插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;
本发明实施例中,所述方法可以应用于NodeJS应用程序中,NodeJS应用程序同时也是一个开发平台,其可以用于开发服务器端web(网络)应用程序,最大的优点是处理并行访问及使用javascript作为服务器端脚本语言,若一个web应用程序同时有较多的访问连接,则最能体现NodeJS的优势。
本发明实施例中,该NodeJS应用程序可以安装有多种插件,如第一打包插件及第二打包插件,第一打包插件可以为maven插件,maven插件是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),一个依赖管理系统(DependencyManagement System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑组件;
maven插件的生命周期阶段可以包括准备资源阶段,测试阶段、编译阶段、可执行文件生成阶段、验证阶段、部署阶段及站点生成阶段;在本发明实施例中,该NodeJS应用程序首先采用所述第一打包插件创建父文件,父文件可以为pom文件,该父文件可以为xml格式的文件,其中,该父文件中已经包含预置的java工程文件及node工程文件。
步骤102,确定所述node工程文件与所述java工程文件之间的第一依赖关系;
进一步地,可以确定该node工程文件与所述java工程文件之间的第一依赖关系,即配置java工程文件为node工程文件的依赖项,建立node工程文件与所述java工程文件之间的第一依赖关系;具体地,可以在java工程文件中的子文件添加针对node工程文件的依赖项,即在java工程文件的子文件中增加对node工程文件的依赖节点<dependency>,表示在java工程文件中需要node工程文件的jar包。
步骤103,确定所述第二打包插件与所述package.json模块的第二依赖关系;
具体应用到本发明实施例中,当确定该node工程文件与所述java工程文件之间的第一依赖关系后,可以进一步确定第二打包插件与所述package.json模块的第二依赖关系,因为只建立node工程文件与java工程文件之间的第一依赖关系,就想要把node工程文件与java工程文件同时打包,生成有效的可执行文件是远远不够,因为在node工程文件往往依赖很多其它的node工程文件,若在运行环境中没有该其它的node工程文件,程序是无法运行的,故即使建立了node工程文件与java工程文件之间的第一依赖关系后,同时将两者打包生成的可执行文件往往也是无法正常执行的。
在本发明实施例中,采用第一打包插件及第二打包插件共同实现可执行文件的生成,具体而言,需要进一步确定第二打包插件与所述package.json模块的第二依赖关系,具体地,该package.json模块存储着NodeJS应用程序的工程信息及依赖,在package.json模块中添加第二打包插件为依赖节点。
需要说明的是,本发明实施例中,还需要运行特定的指令,该指令用于指示npm安装node工程文件的依赖项。
步骤104,当运行所述package.json模块时,根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;
本发明实施例中,当该NodeJS应用程序运行该package.json模块,可以根据该第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;在第一打包插件的编译阶段或者其他阶段,运行package.json模块的相关指令,相应地在package.json模块的scripts(脚本)中进行特定的设置,如"scripts":{"build":"nodenode_modules/webpack/bin/webpack.js-p},如此,便可以根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件,其中,所述第一可执行文件储存在储存目录中,该储存目录可以为target/classes/,本发明实施例对此不作具体的限制。
步骤105,在储存所述第一可执行文件的储存目录中,根据所述第一依赖关系调用所述第一打包插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件。
举例而言,若node工程文件在target/classes/B的储存目录下,而java工程文件在target/classes/A的储存目录下,则在该储存目录target/classes/下,根据该第一依赖关系调用所述第一打包插件将第一可执行文件和java工程文件的第二可执行文件,需要说明的是,所述第一打包插件包括maven插件或gradle插件;所述第二打包插件包括webpack插件或grunt插件,本发明实施例对此不作过多的限制。
本发明实施例中,所述NodeJS应用程序包括package.json模块;所述NodeJS应用程序安装有第一打包插件及第二打包插件;采用所述第一打包插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;确定所述node工程文件与所述java工程文件之间的第一依赖关系;确定所述第二打包插件与所述package.json模块的第二依赖关系;当运行所述package.json模块时,根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;在储存所述第一可执行文件的储存目录中,根据所述第一依赖关系调用所述第一打包插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件;本发明实施例中,可以将独立的java工程文件及node工程文件生成有效的可执行文件,在java应用程序中将node工程文件的可执行文件与java工程文件生成共同的有效的可执行文件,便捷地实现web工程的构建。
参照图2,示出了本发明实施例的一种可执行文件的生成方法实施例二的步骤流程图,应用于NodeJS应用程序;所述NodeJS应用程序包括package.json模块、maven插件和webpack插件;具体可以包括如下步骤:
步骤201,采用所述maven插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;
本发明实施例中,该NodeJS应用程序采用该maven插件创建父文件,该文件中可以包括java工程文件及node工程文件,进一步地,可以建立该java工程文件的子文件,该子文件可以为pom文件,需要说明的是,上述pom文件可以为xml格式的文件。
步骤202,确定所述node工程文件与所述java工程文件之间的第一依赖关系;
在本发明实施例具体应用的一种示例中,可以进一步确定该node工程文件与java工程文件之间的第一依赖关系,即配置所述node工程文件作为所述java工程文件的依赖项,增加对node工程文件的依赖节点<dependency>。
本发明实施例的一种优选实施例中,所述确定所述node工程文件与所述java工程文件之间的第一依赖关系的步骤包括以下子步骤:
子步骤S2021,在maven插件的编译阶段内,建立所述java工程文件的子文件;
子步骤S2022,在所述子文件中配置所述node工程文件作为所述java工程文件的依赖项,建立所述node工程文件与所述java工程文件之间的第一依赖关系。
具体而言,在该maven插件的编译阶段内,建立该java工程文件的子文件,在该子文件中配置所述node工程文件作为所述java工程文件的依赖项,建立所述node工程文件与所述java工程文件之间的第一依赖关系。
需要说明的是,所述maven插件的阶段包括准备资源阶段,测试阶段、编译阶段、可执行文件生成阶段、验证阶段、部署阶段及站点生成阶段。
步骤203,确定所述webpack插件与所述package.json模块的第二依赖关系;
具体应用到本发明实施例中,还可以进一步确定该webpack插件与所述package.json模块的第二依赖关系,目的是让webpack插件的相关指令可以运行。
作为本发明实施例具体应用的一种示例,所述确定所述webpack插件与所述package.json模块的第二依赖关系的步骤包括以下子步骤:
子步骤S2031,配置所述webpack插件作为所述package.json模块的依赖项,建立所述webpack插件与所述package.json模块之间的第二依赖关系。
具体地,该package.json模块存储着NodeJS应用程序的工程信息及依赖,在package.json模块中添加webpack插件为依赖节点。
步骤204,当运行所述package.json模块时,根据第二依赖关系调用所述webpack插件将所述node工程文件打包成第一可执行文件;其中,所述第一可执行文件储存在储存目录中;
应用到本发明实施例中,当该NodeJS应用程序运行该package.json模块,可以根据该第二依赖关系调用所述webpack插件生成所述node工程文件对应的第一可执行文件;在maven插件的编译阶段,运行package.json模块的相关指令,该指令可以为npm build指令;相应地在package.json模块的scripts(脚本)中进行特定的设置,如"scripts":{"build":"node node_modules/webpack/bin/webpack.js-p},这样,便可以根据第二依赖关系调用所述webpack插件将所述node工程文件打包成第一可执行文件。
步骤205,在储存所述第一可执行文件的所述储存目录中,根据所述第一依赖关系调用所述maven插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件;
在储存所述第一可执行文件的所述储存目录中,根据所述第一依赖关系调用所述maven插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件。
需要说明的是,上述的第一打包插件为maven插件,第二打包插件为webpack插件仅仅是本发明实施例的一种举例,在本发明实施例中可以将maven插件替换为gradle插件;将webpack插件替换为grunt插件,当然,还可以替换为其他的插件,本发明实施例对此不作具体的限制;进一步地,本发明实施例中可以实现上述的建立依赖关系及生成可以执行文件的功能的插件均落入本发明实施例的保护范围。
步骤206,启动所述第二可执行文件建立http server连接。
具体应用到本发明实施例中,启动该第二可执行文件建立http server(超文本传输协议服务器)连接,这样,相关的用户设备便可以访问第二可执行文件对应的部分网页。
本发明实施例中,所述NodeJS应用程序包括package.json模块;所述NodeJS应用程序安装有maven插件及webpack插件;采用所述maven插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;确定所述node工程文件与所述java工程文件之间的第一依赖关系;确定所述webpack插件与所述package.json模块的第二依赖关系;当运行所述package.json模块时,根据第二依赖关系调用所述webpack插件将所述node工程文件打包成第一可执行文件;在储存所述第一可执行文件的所述储存目录中,根据所述第一依赖关系调用所述maven插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件;启动所述第二可执行文件建http server连接,本发明实施例中,可以将独立的java工程文件及node工程文件生成有效的可执行文件,在java应用程序中将node工程文件的可执行文件与java工程文件生成共同的有效的可执行文件,便捷地实现web工程的构建。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明实施例的一种可执行文件的生成装置实施例的结构框图,应用于NodeJS应用程序;所述NodeJS应用程序包括package.json模块、第一打包插件和第二打包插件;具体可以包括如下模块:
父文件创建模块301,用于采用所述第一打包插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;
第一确定模块302,用于确定所述node工程文件与所述java工程文件之间的第一依赖关系;
第二确定模块303,用于确定所述第二打包插件与所述package.json模块的第二依赖关系;
第一可执行文件生成模块304,用于当运行所述package.json模块时,根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;
第二可执行文件生成模块305,用于在储存所述第一可执行文件的储存目录中,根据所述第一依赖关系调用所述第一打包插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件。
优选地,所述第一确定模块包括:
子文件建立子模块,用于建立所述java工程文件的子文件;
第一依赖关系建立子模块,用于在所述子文件中配置所述node工程文件作为所述java工程文件的依赖项,建立所述node工程文件与所述java工程文件之间的第一依赖关系。
优选地,所述第二确定模块包括:
第二依赖关系建立子模块,用于配置所述第二打包插件作为所述package.json模块的依赖项,建立所述第二打包插件与所述package.json模块之间的第二依赖关系。
优选地,所述装置还包括:
连接建立模块,用于启动所述第二可执行文件建立http server连接。
优选地,所述maven插件的阶段包括准备资源阶段,测试阶段、编译阶段、可执行文件生成阶段、验证阶段、部署阶段及站点生成阶段。
优选地,所述第一打包插件包括maven插件或gradle插件;所述第二打包插件包括webpack插件或grunt插件。
本发明实施例中还公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述的可执行文件的生成的步骤。
本发明实施例中还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上可执行文件的生成的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种可执行文件的生成方法和一种可执行文件的生成装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种可执行文件的生成方法,其特征在于,应用于NodeJS应用程序;所述NodeJS应用程序包括package.json模块、第一打包插件和第二打包插件;所述方法包括:
采用所述第一打包插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;
确定所述node工程文件与所述java工程文件之间的第一依赖关系;
确定所述第二打包插件与所述package.json模块的第二依赖关系;
当运行所述package.json模块时,根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;
在储存所述第一可执行文件的储存目录中,根据所述第一依赖关系调用所述第一打包插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件。
2.根据权利要求1所述的方法,其特征在于,所述确定所述node工程文件与所述java工程文件之间的第一依赖关系的步骤包括:
建立所述java工程文件的子文件;
在所述子文件中配置所述node工程文件作为所述java工程文件的依赖项,建立所述node工程文件与所述java工程文件之间的第一依赖关系。
3.根据权利要求1所述的方法,其特征在于,所述确定所述第二打包插件与所述package.json模块的第二依赖关系的步骤包括:
配置所述第二打包插件作为所述package.json模块的依赖项,建立所述第二打包插件与所述package.json模块之间的第二依赖关系。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
启动所述第二可执行文件建立超文本传输协议服务器http server连接。
5.根据权利要求1或2所述的方法,其特征在于,所述第一打包插件包括maven插件或gradle插件;所述第二打包插件包括webpack插件或grunt插件。
6.一种可执行文件的生成装置,其特征在于,应用于NodeJS应用程序;所述NodeJS应用程序包括package.json模块、第一打包插件和第二打包插件;所述装置包括:
父文件创建模块,用于采用所述第一打包插件创建父文件;其中,所述父文件包括java工程文件及node工程文件;
第一确定模块,用于确定所述node工程文件与所述java工程文件之间的第一依赖关系;
第二确定模块,用于确定所述第二打包插件与所述package.json模块的第二依赖关系;
第一可执行文件生成模块,用于当运行所述package.json模块时,根据第二依赖关系调用所述第二打包插件将所述node工程文件打包成第一可执行文件;
第二可执行文件生成模块,用于在储存所述第一可执行文件的储存目录中,根据所述第一依赖关系调用所述第一打包插件将所述第一可执行文件和所述java工程文件打包成第二可执行文件。
7.根据权利要求6所述的装置,其特征在于,所述第一确定模块包括:
子文件建立子模块,用于建立所述java工程文件的子文件;
第一依赖关系建立子模块,用于在所述子文件中配置所述node工程文件作为所述java工程文件的依赖项,建立所述node工程文件与所述java工程文件之间的第一依赖关系。
8.根据权利要求6所述的装置,其特征在于,所述第二确定模块包括:
第二依赖关系建立子模块,用于配置所述第二打包插件作为所述package.json模块的依赖项,建立所述第二打包插件与所述package.json模块之间的第二依赖关系。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5中任一项所述的可执行文件的生成的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的可执行文件的生成的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710901604.7A CN107817978B (zh) | 2017-09-28 | 2017-09-28 | 一种可执行文件的生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710901604.7A CN107817978B (zh) | 2017-09-28 | 2017-09-28 | 一种可执行文件的生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107817978A true CN107817978A (zh) | 2018-03-20 |
CN107817978B CN107817978B (zh) | 2020-08-28 |
Family
ID=61607211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710901604.7A Active CN107817978B (zh) | 2017-09-28 | 2017-09-28 | 一种可执行文件的生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107817978B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491193A (zh) * | 2018-04-11 | 2018-09-04 | 厦门海迈科技股份有限公司 | Eclipse RCP产品构建方法、装置、终端及介质 |
CN108804088A (zh) * | 2018-04-25 | 2018-11-13 | 广州视源电子科技股份有限公司 | 协议处理方法和装置 |
CN109669683A (zh) * | 2018-12-25 | 2019-04-23 | 福建南威软件有限公司 | 一种功能组件自动打包的方法 |
CN110442376A (zh) * | 2019-07-19 | 2019-11-12 | 精硕科技(北京)股份有限公司 | 一种实现软件打包的方法及装置 |
CN110968357A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种maven项目的打包方法、装置、存储介质及处理器 |
CN111124420A (zh) * | 2019-12-19 | 2020-05-08 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111580834A (zh) * | 2020-04-10 | 2020-08-25 | 北京城市网邻信息技术有限公司 | 一种应用安装包的生成方法和装置 |
CN112433704A (zh) * | 2020-11-25 | 2021-03-02 | 平安普惠企业管理有限公司 | 浏览器插件的开发方法、装置、设备及介质 |
CN112486470A (zh) * | 2020-12-15 | 2021-03-12 | 恩亿科(北京)数据科技有限公司 | 基于文件依赖关系自动调整文件窗口顺序的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039923B2 (en) * | 2002-04-19 | 2006-05-02 | Sun Microsystems, Inc. | Class dependency graph-based class loading and reloading |
US20090113418A1 (en) * | 2007-10-26 | 2009-04-30 | Sun Microsystems, Inc. | Method and apparatus for responsive execution of a platform-independent program on a computing platform that has not been provisioned |
CN103150161A (zh) * | 2013-02-06 | 2013-06-12 | 中金数据系统有限公司 | 基于MapReduce 计算模型的任务封装方法及装置 |
CN104932902A (zh) * | 2015-07-09 | 2015-09-23 | 魅族科技(中国)有限公司 | 一种生成apk文件的方法及终端 |
CN106886394A (zh) * | 2015-12-15 | 2017-06-23 | 五八同城信息技术有限公司 | 应用程序打包方法及装置 |
-
2017
- 2017-09-28 CN CN201710901604.7A patent/CN107817978B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039923B2 (en) * | 2002-04-19 | 2006-05-02 | Sun Microsystems, Inc. | Class dependency graph-based class loading and reloading |
US20090113418A1 (en) * | 2007-10-26 | 2009-04-30 | Sun Microsystems, Inc. | Method and apparatus for responsive execution of a platform-independent program on a computing platform that has not been provisioned |
CN103150161A (zh) * | 2013-02-06 | 2013-06-12 | 中金数据系统有限公司 | 基于MapReduce 计算模型的任务封装方法及装置 |
CN104932902A (zh) * | 2015-07-09 | 2015-09-23 | 魅族科技(中国)有限公司 | 一种生成apk文件的方法及终端 |
CN106886394A (zh) * | 2015-12-15 | 2017-06-23 | 五八同城信息技术有限公司 | 应用程序打包方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491193A (zh) * | 2018-04-11 | 2018-09-04 | 厦门海迈科技股份有限公司 | Eclipse RCP产品构建方法、装置、终端及介质 |
CN108804088B (zh) * | 2018-04-25 | 2022-03-08 | 广州视源电子科技股份有限公司 | 协议处理方法和装置 |
CN108804088A (zh) * | 2018-04-25 | 2018-11-13 | 广州视源电子科技股份有限公司 | 协议处理方法和装置 |
CN110968357A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种maven项目的打包方法、装置、存储介质及处理器 |
CN110968357B (zh) * | 2018-09-30 | 2023-04-07 | 北京国双科技有限公司 | 一种maven项目的打包方法、装置、存储介质及处理器 |
CN109669683A (zh) * | 2018-12-25 | 2019-04-23 | 福建南威软件有限公司 | 一种功能组件自动打包的方法 |
CN110442376A (zh) * | 2019-07-19 | 2019-11-12 | 精硕科技(北京)股份有限公司 | 一种实现软件打包的方法及装置 |
CN111124420A (zh) * | 2019-12-19 | 2020-05-08 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111124420B (zh) * | 2019-12-19 | 2023-06-20 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111580834A (zh) * | 2020-04-10 | 2020-08-25 | 北京城市网邻信息技术有限公司 | 一种应用安装包的生成方法和装置 |
CN111580834B (zh) * | 2020-04-10 | 2021-10-29 | 北京城市网邻信息技术有限公司 | 一种应用安装包的生成方法和装置 |
CN112433704A (zh) * | 2020-11-25 | 2021-03-02 | 平安普惠企业管理有限公司 | 浏览器插件的开发方法、装置、设备及介质 |
CN112486470A (zh) * | 2020-12-15 | 2021-03-12 | 恩亿科(北京)数据科技有限公司 | 基于文件依赖关系自动调整文件窗口顺序的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107817978B (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107817978A (zh) | 一种可执行文件的生成方法和装置 | |
CN109871499A (zh) | 页面加载方法及客户端 | |
CN110515608A (zh) | 一种接口代码的生成方法及装置、电子设备、存储介质 | |
CN105138448A (zh) | 一种在前端测试页面的方法和装置 | |
CN111666296A (zh) | 基于Flink的SQL数据实时处理方法、装置、计算机设备和介质 | |
CN108965375B (zh) | 服务调用代理控制系统、方法、服务器及可读存储介质 | |
CN104573287B (zh) | 基于界面绑定统一模型的数字仿真框架设计方法 | |
CN107885658B (zh) | 测试前置实现方法、装置、终端设备及存储介质 | |
CN109144511B (zh) | 数值模拟图形用户界面自动生成方法及系统 | |
CN103744647A (zh) | 一种基于工作流GPD的Java工作流开发系统及其方法 | |
CN109298900A (zh) | 一种应用拆分以及按需加载方法、装置 | |
CN112306864A (zh) | 基于微服务的Mock测试方法和系统、存储介质、计算设备 | |
CN104657142A (zh) | 一种基于OSGi技术的CCFD系统 | |
GB2508875A (en) | Defining elements of web pages for variation | |
CN106598830B (zh) | 移动终端的网页脚本调试方法及系统 | |
US8135757B2 (en) | Generating references to reusable code in a schema | |
CN108021564A (zh) | 一种页面重定向的方法和设备 | |
CN106649299A (zh) | 一种网页区块懒加载的方法和装置 | |
Pérez et al. | Facing interaction-rich rias: The orchestration model | |
CN108804120A (zh) | 一种页面构建方法、装置、设备及存储介质 | |
CN104504125A (zh) | 网页数据监测方法和装置 | |
CN115878860A (zh) | 一种菜单的生成方法、装置、服务器设备及介质 | |
CN106020789A (zh) | 应用程序包的渠道信息添加方法、系统及打渠道包服务器 | |
CN110059276A (zh) | 页面更新方法、装置、设备和存储介质 | |
CN109086362A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |