CN108491193A - Eclipse RCP产品构建方法、装置、终端及介质 - Google Patents
Eclipse RCP产品构建方法、装置、终端及介质 Download PDFInfo
- Publication number
- CN108491193A CN108491193A CN201810322598.4A CN201810322598A CN108491193A CN 108491193 A CN108491193 A CN 108491193A CN 201810322598 A CN201810322598 A CN 201810322598A CN 108491193 A CN108491193 A CN 108491193A
- Authority
- CN
- China
- Prior art keywords
- maven
- plug
- product
- eclipse
- feature
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Maven的Eclipse RCP产品构建方法、装置、终端及介质,利用Maven Tycho插件的构建功能构建Eclipse RCP产品,从而解决了基于Eclipse平台导出RCP产品占用内存大和易出现导出失败的问题,另外,本发明所述技术方案实现了自动化的RCP产品打包,减少了产品导出时间,且无需人工操作,降低了失误率。
Description
技术领域
本发明涉及Java富客户端开发技术领域,尤其涉及一种基于Maven的Eclipse RCP产品构建方法、装置、终端及介质。
背景技术
Eclipse富客户端平台(RCP)是基于Eclipse框架的客户端开发框架。Eclipse框架是OSGi框架的实现。OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范。OSGi给出了一套Java模块化规范,这套规范给出了OSGi框架的定义,而具体的OSGi平台,如Felix和Equinox则分别是Apache和Eclipse开源社区给出的标准规范的实现。
OSGi框架为每个模块Bundle(可以理解为每个独立的jar包)提供了标准的运行环境。根据OSGi的规定运行环境可以分为如图1所示层次,具体地,图1中由下往上:
L0:Execution Environment运行环境:指定模块的运行环境;
L1:Modules模块:定义类的装载策略;OSGi框架是一个强大的具有严格定义的类装载模型。它基于Java之上,但是增加了模块化。在Java中,正常情况下有一个包含所有类和资源的类路径。OSGi模块层为一个模块增加了私有类,同时有可控模块间链接。模块层同安全架构完全集成,可以选择部署到部署封闭系统;
L2:LifeCycle生命周期管理:增加了能够被动态安装、开启、关闭、更新和卸载的bundles。这些bundles依赖于具有类装载功能的模块层,但是增加了在运行时管理这些模块的API。生命周期层引入了正常情况下不属于一个应用程序的动态性。扩展依赖机制用于确保环境的操作正确;
L3:Services服务注册:服务注册提供了一个面向模块(bundles)的考虑到动态性的协作模型。模块(bundles)能通过传统的类共享进行协作,但是类共享同动态安装和卸载代码不兼容。服务注册提供了一个在模块(bundles)间分享对象的完整模型,定义了大量的事件来处理服务的注册和删除。
通过以上描述OSGi框架中每个模块可以指定自己的运行环境,模块内有独立的类加载器控制模块内类和资源的加载,模块有自己的生命周期,可以动态的安装、激活、卸载,模块可以开放接口与其他模块做交互。
在Eclipse RCP中OSGi Bundles的实现被称之为Plug-in(插件项目)。EclipseRCP应用是由Eclipse框架和Plug-in组成,Eclipse框架组成示意图可如图2所示。
具体地,Eclipse RCP主要由三种类型的项目组成:
1、Plug-in:OSGi模块(bundles)的实现,每个Plugin项目是一个独立的功能模块,plugin项目可以相互调用(不能造成循环依赖),plugin项目有独自的类加载器和资源,plugin项目可以控制对外公布的接口。Plugin项目就是OSGi bundles的实现。
在Eclipse RCP中,插件项目通过MANIFEST.MF文件实现以上描述的OSGi特征,MF文件声明了插件的版本信息,依赖的插件,对外公布的接口等OSGi框架特征。具体配置界面和流程可如图3~6所示。
2、Feature:Plug-in(插件项目)列表工程,Eclipse RCP产品功能列表,Feature项目罗列RCP产品包含的功能模块(plugin项目列表),通过Feature项目可以根据业务需求快速定制产品功能。
3、Product:Eclipse RCP产品配置文件。用于配置RCP产品功能列表(feature列表),icon图标,运行java环境,java环境运行参数,启动图splash等,具体配置界面可如图7和8所示。
在应用时,Eclipse RCP应用交付给客户(俗称打包),需要通过Eclipse提供的“导出产品功能”生成客户端可执行的程序。导出的可执行程序结构如下:
1、plugins目录,存放RCP产品的Plug-in插件项目列表;
2、feature目录,存放RCP产品的feature项目列表;
3、configuration目录,存放Plug-in插件启动顺序配置文件;
4、**.exe文件,启动程序;
5、**.ini文件,客户端运行参数配置文件如java虚拟机内存配置。
但是在使用Eclipse开发工程导出RCP产品会存在以下问题:
1、由于Eclipse自身的问题,启动Eclipse需要占用比较多的内存,在导出RCP产品时需要消耗大量的CPU和内存资源,可能会导致电脑卡死或者假死。
2、Eclipse导出RCP产品是基于ANT脚本实现,脚本实现不对外公布,在导出时偶尔会出现导出失败(可能是脚本的问题也可能是Eclipse环境的问题)。
3、完全依赖Eclipse开发工具导出RCP产品,需要人工介入(配置库代码同步,执行导出产品),会发生误操作的可能,同时也无法满足自动化的产品打包发布的需求。
申请人经过仔细钻研发现,以上存在的问题主要是因为导出RCP产品是依赖Eclipse开发工具,因此,亟需提供一种脱离Eclipse平台构建RCP产品的技术。
发明内容
本发明实施例提供了一种基于Maven的Eclipse RCP产品构建方法、装置、终端及介质,用以解决现有的基于Eclipse平台导出RCP产品占用内存大、易出现导出失败、且无法实现自动化的产品打包、以及由于需要人工操作,导致存在一定的失误率的问题。
本发明实施例提供了一种基于Maven的Eclipse RCP产品构建方法,所述方法包括:
基于Maven Tycho插件的构建功能构建Eclipse RCP产品。
进一步地,作为一个可执行方案,所述基于Maven Tycho插件的构建功能构建Eclipse RCP产品,包括:
基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目;
重新规划Maven类型项目的目录结构,并根据重新规划的Maven类型项目的目录结构编写插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本;
执行插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本,构建EclipseRCP产品。
进一步地,作为一个可执行方案,所述基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目,包括:
在Plug-in类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Plug-in类型的Eclipse RCP产品。
进一步地,作为一个可执行方案,所述基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目,包括:
在Feature类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Feature类型的Eclipse RCP产品。
进一步地,作为一个可执行方案,所述基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目,包括:
在Product类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Product类型的Eclipse RCP产品。
进一步地,作为一个可执行方案,所述重新规划Maven类型项目的目录结构,包括:
所有的Plug-in类型的插件项目存放在bundles目录下;
所有的Feature类型的特征项目存放在features目录下;
所有的Product类型的产品项目和公用脚本存放在releng目录下;
Product目录下存放最终的Maven构件脚本,包含构件Eclipse RCP产品使用到的插件Plug-in、特征Feature、产品Product。
进一步地,本发明实施例还提供了一种基于Maven的Eclipse RCP产品构建装置,所述装置包括:
构建单元,用于基于Maven Tycho插件的构建功能构建Eclipse RCP产品。
进一步地,本发明实施例还提供了一种基于Maven的Eclipse RCP产品构建终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述方法的步骤。
进一步地,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明有益效果如下:
本发明实施例提供了一种基于Maven的Eclipse RCP产品构建方法、装置、终端及介质,利用Maven Tycho插件的构建功能构建Eclipse RCP产品,从而解决了基于Eclipse平台导出RCP产品占用内存大和易出现导出失败的问题,另外,本发明所述技术方案实现了自动化的RCP产品打包,减少了产品导出时间,且无需人工操作,降低了失误率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为背景技术中所述的OSGi的规定运行环境的结构示意图;
图2所示为背景技术中所述的Eclipse框架组成结构示意图;
图3所示为背景技术中Eclipse RCP实现OSGi特征的版本信息配置示意图;
图4所示为背景技术中Eclipse RCP实现OSGi特征的依赖插件设置示意图;
图5所示为背景技术中Eclipse RCP实现OSGi特征的对外发布资源示意图;
图6所示为背景技术中Eclipse RCP实现OSGi特征的.MF文件内容示意图;
图7所示为背景技术中Eclipse RCP产品product的版本配置界面示意图;
图8所示为背景技术中Eclipse RCP产品rcp启动相关配置示意图;
图9所示为本发明实施例一所述的基于Maven的Eclipse RCP产品构建方法的流程示意图;
图10~11所示为本发明实施例一中编写文件内容的Plugin项目脚本程序编写截图和Feature项目脚本程序编写截图;
图12所示为本发明实施例一中另编写文件内容的程序编写截图;
图13所示为本发明实施例一中构建Eclipse RCP产品的流程示意图;图14所示为本发明实施例一中导出后的Eclipse RCP产品文件结构示意图;
图15所示为一种基于Maven的Eclipse RCP产品构建装置的结构示意图;
图16所示为一种基于Maven的Eclipse RCP产品构建装置的另一结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明属于Java富客户端开发技术领域,适用于所有基于Eclipse RCP框架(OSGi框架)客户端应用程序。
本发明的设计思路是:目前Java应用构建主要采用的是Maven,如果Eclipse RCP产品可以通过Maven构建就可以脱离Eclipse IDE构建产品,解决基于Eclipse导出产品存在的问题,同时可以将Maven编写的脚本集成到主流的自动化部署工具(Jenkins)实现自动化打包。Maven原生构建功能只能构建通用的java项目(常用的jar包或者war包),对于Eclipse RCP的三种类型项目(Plug-in项目,Feature项目,Product项目)Maven无法构建。
但由于Maven支持第三方插件扩展,Eclipse官方又提供了Maven Tycho插件,通过使用Tycho插件可以导出Eclipse RCP的三种类型项目(Plug-in项目,Feature项目,Product项目)。
需要说明的是,Tycho是一套可以构建eclipse plugin和OSGi bundle的Maven插件。Tycho在最大程度上复用了RCP开发当中的MANIFEST.MF文件,因此可以用极少的配置就可以完成所有的构建工作。Tycho支持三种打包类型:eclipse-plugin、eclipse-feature和eclipse-repository分别对应着RCP开发当中的plug-in、feature以及product。
以上是本发明所要提供的一种脱离Eclipse平台构建RCP产品的技术设计基础,下面详细说明本发明所述的一种基于Maven的Eclipse RCP产品构建方法的具体操作流程。
实施例一:
本发明实施例一提供了一种基于Maven的Eclipse RCP产品构建方法,如图9所示,其为本发明实施例一所述的基于Maven的Eclipse RCP产品构建方法的流程示意图,所述方法可包括以下步骤:
步骤901:基于Maven Tycho插件的构建功能构建Eclipse RCP产品。
具体地,在一个实例中,所述基于Maven Tycho插件的构建功能构建Eclipse RCP产品,包括:
步骤S1:基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目;
具体地,将RCP项目转化为Maven项目时,pom文件需要指定打包类型(packaging),Maven在构建的时候会读取打包类型构建相应的jar包。
需要注意的是,因为Maven中对Artifact定义和RCP中对Bundle定义是通过不同的标准来实现的。在POM文件中Artifact ID和Version等同于MANIFEST.MF文件中的Bundle-Symbolic-Name和Version。另外,在打包时要按照Tycho中约定的打包类型(Packaging)打包,打包类型如下表格所示:
Package Type | Ddescription |
Eclipse-plugin | Plugin |
Eclipse-feature | Feature |
Eclipse-repository | P2 update site&Product |
也就是说,Tycho在构建代码时会根据打包类型对应的格式构建相对应的jar包。
步骤S2:重新规划Maven类型项目的目录结构,并根据重新规划的Maven类型项目的目录结构编写插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本;
步骤S3:执行插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本,构建EclipseRCP产品。
更具体地,对于Plug-in类型的Eclipse RCP项目是在Plug-in类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Plug-in类型的Eclipse RCP产品;
对于Feature类型的Eclipse RCP项目是在Feature类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Feature类型的Eclipse RCP产品;
对于Product类型的Eclipse RCP项目是在Product类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Product类型的Eclipse RCP产品。
其中,pom.xml文件内容可包括project节点、groupId节点、artifactId节点、packaging节点,其中,project节点是xml根节点,主要根据xml文件标准声明命名空间定义;groupId节点是声明项目组的ID;artifactId节点是声明项目ID,可以直接从MF文件中的Bundle-version同步;packaging节点声明当前项目的构建方式。
对于上述步骤S2重新规划Maven类型项目的目录结构,是为了方便管理EclipseRCP框架和复用Maven脚本。
具体地,所述重新规划Maven项目的目录结构,包括:
所有的Plug-in类型的插件项目存放在bundles目录下;
所有的Feature类型的特征项目存放在features目录下;
所有的Product类型的产品项目和公用脚本存放在releng目录下;
Product目录下存放最终的Maven构件脚本,包含构件Eclipse RCP产品使用到的插件Plug-in、特征Feature、产品Product。
也就是说,重新规划后的目录结构如下:
---根目录
---bundles目录
---features目录
---releng目录
---product目录
在实际实现时,Plug-in项目脚本和feature项目脚本,在构建转换为Maven类型项目的时候就已编写完成。具体的编写文件内容可如图10和11所示,其中,pom文件中各个节点说明如下:
project节点是xml根节点,主要根据xml文件标准声明命名空间定义;
parent节点主要是声明当前pom,因为maven中pom文件是可以继承的;
groupId节点是声明项目组的ID;
artifactId节点是声明项目ID,可以直接从MF文件中的Bundle-version同步;
packaging节点是声明当前项目的构建方式。
而Product文件对应的maven脚本要做的事情主要是:
1、配置构建产品的运行环境(windows,macos);
2、指定使用tycho构建RCP产品;
3、指定构建后产品的文件存储(是否需要压缩)。
具体的,编写的文件内容可如图12所示,其中,build节点主要是配置RCP产品的构建,主要包含以下构建插件:
tycho-maven-plugin:在maven中使用tycho构建RCP产品;
target-platform-configuration:指定RCP product构建使用的操作系统,这样Tycho在build product的时候就会根据不同的os,选用不同的环境包并入最后的product中;
tycho-p2-director-plugin:根据Eclipse RCP product配置文件构建产品。
对于步骤S3,执行插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本,构建EclipseRCP产品,具体地,是通过调用Maven package命令执行Product目录的脚本,Maven Tycho插件就会自动构建Eclipse RCP产品,具体构建过程可如图13所示。
Maven在使用tycho构建产品时会自动根据pom文件指定的构建类型,每个RCP项目构建完成后会提示构建结果(成功/失败)消耗的时间等,也可参见图13。再有,对于导出后的Eclipse RCP产品文件结构可参见图14所示,至此,完成基于Maven的Eclipse RCP产品构建。
本发明实施例一提供了一种基于Maven的Eclipse RCP产品构建方法,利用MavenTycho插件的构建功能构建Eclipse RCP产品,从而解决了基于Eclipse平台导出RCP产品占用内存大和易出现导出失败的问题,另外,本发明所述技术方案实现了自动化的RCP产品打包,且无需人工操作,降低了失误率。
实施例二
基于与本发明实施例一同一发明构思,本发明实施例二提供了一种基于Maven的Eclipse RCP产品构建装置,如图15所示,所述装置包括:
构建单元1501,可用于基于Maven Tycho插件的构建功能构建Eclipse RCP产品。
进一步地,作为一个可执行方案,所述构建单元1501包括:
构建子单元1601,可用于基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目;
目录规划及编写脚本子单元1602,可用于重新规划Maven类型项目的目录结构,并根据重新规划的Maven类型项目的目录结构编写插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本;
执行脚本子单元1603,可用于执行插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本,构建EclipseRCP产品。
进一步地,作为一个可执行方案,所述构建子单元1601,具体可用于在Plug-in类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Plug-in类型的Eclipse RCP产品;
在Feature类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Feature类型的Eclipse RCP产品;
在Product类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Product类型的Eclipse RCP产品。
所述目录规划及编写脚本子单元1602,具体用于所有的Plug-in类型的插件项目存放在bundles目录下;
所有的Feature类型的特征项目存放在features目录下;
所有的Product类型的产品项目和公用脚本存放在releng目录下;
Product目录下存放最终的Maven构件脚本,包含构件Eclipse RCP产品使用到的插件Plug-in、特征Feature、产品Product。
本发明实施例二提供了一种基于Maven的Eclipse RCP产品构建装置,利用MavenTycho插件的构建功能构建Eclipse RCP产品,从而解决了基于Eclipse平台导出RCP产品占用内存大和易出现导出失败的问题,另外,本发明所述技术方案实现了自动化的RCP产品打包,且无需人工操作,降低了失误率。
进一步地,本发明实施例还提供了一种基于Maven的Eclipse RCP产品构建终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述方法实施例中的步骤,例如图9所示的步骤901等方法步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如实现上述构建单元1501等单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于Maven的Eclipse RCP产品构建终端设备中的执行过程。例如,所述计算机程序可以被分割成上述构建单元1501,各单元具体功能如下:
构建单元1501,可用于基于Maven Tycho插件的构建功能构建Eclipse RCP产品。
进一步地,作为一个可执行方案,所述基于Maven的Eclipse RCP产品构建终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于Maven的Eclipse RCP产品构建终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述基于Maven的Eclipse RCP产品构建终端设备的组成结构仅仅是基于Maven的Eclipse RCP产品构建终端设备的示例,并不构成对基于Maven的Eclipse RCP产品构建终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于Maven的Eclipse RCP产品构建终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于Maven的Eclipse RCP产品构建终端设备的控制中心,利用各种接口和线路连接整个基于Maven的Eclipse RCP产品构建终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于Maven的Eclipse RCP产品构建终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
进一步地,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述基于Maven的Eclipse RCP产品构建终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
也就是说,在本发明实施例中,利用Maven Tycho插件的构建功能构建EclipseRCP产品,从而解决了基于Eclipse平台导出RCP产品占用内存大和易出现导出失败的问题,另外,本发明所述技术方案实现了自动化的RCP产品打包,且无需人工操作,降低了失误率。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种基于Maven的Eclipse RCP产品构建方法,其特征在于,所述方法包括:
基于Maven Tycho插件的构建功能构建Eclipse RCP产品。
2.如权利要求1所述的方法,其特征在于,所述基于Maven Tycho插件的构建功能构建Eclipse RCP产品,包括:
基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目;
重新规划Maven类型项目的目录结构,并根据重新规划的Maven类型项目的目录结构编写插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本;
执行插件Plug-in的Maven项目脚本、特征Feature的Maven项目脚本、产品Product的Maven项目脚本,构建EclipseRCP产品。
3.如权利要求2所述的方法,其特征在于,所述基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目,包括:
在Plug-in类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Plug-in类型的Eclipse RCP产品。
4.如权利要求2所述的方法,其特征在于,所述基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目,包括:
在Feature类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Feature类型的Eclipse RCP产品。
5.如权利要求2所述的方法,其特征在于,所述基于Maven Tycho插件的构建功能将Eclipse RCP框架的插件Plug-in、特征Feature、产品Product三种类型的项目转化为Maven类型项目,包括:
在Product类型的Eclipse RCP框架下新增pom.xml文件,并根据pom.xml文件内容构建Product类型的Eclipse RCP产品。
6.如权利要求2所述的方法,其特征在于,所述重新规划Maven类型项目的目录结构,包括:
所有的Plug-in类型的插件项目存放在bundles目录下;
所有的Feature类型的特征项目存放在features目录下;
所有的Product类型的产品项目和公用脚本存放在releng目录下;
Product目录下存放最终的Maven构件脚本,包含构件Eclipse RCP产品使用到的插件Plug-in、特征Feature、产品Product。
7.一种基于Maven的Eclipse RCP产品构建装置,其特征在于,所述装置包括:
构建单元,用于基于Maven Tycho插件的构建功能构建Eclipse RCP产品。
8.一种基于Maven的Eclipse RCP产品构建终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~6所述方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~6所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810322598.4A CN108491193A (zh) | 2018-04-11 | 2018-04-11 | Eclipse RCP产品构建方法、装置、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810322598.4A CN108491193A (zh) | 2018-04-11 | 2018-04-11 | Eclipse RCP产品构建方法、装置、终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108491193A true CN108491193A (zh) | 2018-09-04 |
Family
ID=63315512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810322598.4A Pending CN108491193A (zh) | 2018-04-11 | 2018-04-11 | Eclipse RCP产品构建方法、装置、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491193A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851122A (zh) * | 2019-11-06 | 2020-02-28 | 深圳前海环融联易信息科技服务有限公司 | 基础框架包设计方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809071A (zh) * | 2015-05-14 | 2015-07-29 | 北京润科通用技术有限公司 | 一种代码测试方法及装置 |
CN105512955A (zh) * | 2015-12-29 | 2016-04-20 | 深圳市科漫达智能管理科技有限公司 | 一种组件化产品装配的方法及系统 |
CN107817978A (zh) * | 2017-09-28 | 2018-03-20 | 聚好看科技股份有限公司 | 一种可执行文件的生成方法和装置 |
-
2018
- 2018-04-11 CN CN201810322598.4A patent/CN108491193A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809071A (zh) * | 2015-05-14 | 2015-07-29 | 北京润科通用技术有限公司 | 一种代码测试方法及装置 |
CN105512955A (zh) * | 2015-12-29 | 2016-04-20 | 深圳市科漫达智能管理科技有限公司 | 一种组件化产品装配的方法及系统 |
CN107817978A (zh) * | 2017-09-28 | 2018-03-20 | 聚好看科技股份有限公司 | 一种可执行文件的生成方法和装置 |
Non-Patent Citations (3)
Title |
---|
CHNIC: ""使用Tycho来构建你的RCP程序(一) —— Plugin"", 《HTTPS://WWW.ITEYE.COM/BLOG/CHNIC-2201139》 * |
CHNIC: ""使用Tycho来构建你的RCP程序(三) —— Product"", 《HTTPS://WWW.ITEYE.COM/BLOG/CHNIC-2202024》 * |
CHNIC: ""使用Tycho来构建你的RCP程序(二) —— Feature"", 《HTTPS://WWW.ITEYE.COM/BLOG/CHNIC-2201998》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851122A (zh) * | 2019-11-06 | 2020-02-28 | 深圳前海环融联易信息科技服务有限公司 | 基础框架包设计方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Seinturier et al. | A component‐based middleware platform for reconfigurable service‐oriented architectures | |
Gokhale et al. | Model driven middleware: A new paradigm for developing distributed real-time and embedded systems | |
US7263686B2 (en) | System and method for automated code generation using language neutral software code | |
US20110004564A1 (en) | Model Based Deployment Of Computer Based Business Process On Dedicated Hardware | |
WO2014159943A2 (en) | Dynamically loaded plugin architecture | |
US11301262B2 (en) | Policy enabled application-release-management subsystem | |
US10452426B2 (en) | Methods and systems for configuration-file inheritance | |
US9507748B2 (en) | Platform runtime abstraction | |
CN109889377A (zh) | 基于Openstack的NFV系统中部署VNF的方法和装置 | |
US9836282B2 (en) | Separation of concerns between information technology services models | |
CN114995807A (zh) | 一种前端多项目框架的配置方法及系统 | |
CN114912897A (zh) | 工作流执行方法、工作流编排方法及电子设备 | |
Jan et al. | Flex‐eWare: a flexible model driven solution for designing and implementing embedded distributed systems | |
CN108491193A (zh) | Eclipse RCP产品构建方法、装置、终端及介质 | |
CN108228266A (zh) | 一种Android插件框架下不同插件间启动Fragment组件的方法和装置 | |
CN116107590A (zh) | 软件产品开发部署中兼容微服务和单体架构的实现方法及系统 | |
Balasubramanian et al. | Towards composable distributed real-time and embedded software | |
CN113726588B (zh) | 数据集成方法、系统及服务器 | |
CA2510676A1 (en) | Distribution of services software in a network | |
Rudametkin et al. | A framework for managing dynamic service-oriented component architectures | |
Ghosh et al. | Streamlining Multi-Cloud Infrastructure Orchestration: Leveraging Terraform as a Battle-Tested Solution | |
Pham et al. | AutoBot: a versatile platform for management of legacy applications in the cloud | |
Dash | Dynamic cloud provisioning based on TOSCA | |
Eder | An infrastructure agnostic application deployment framework for the Internet of Things | |
CN115204136A (zh) | 基于DevOps的简化yaml操作复杂度的方法、装置、设备及介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180904 |
|
RJ01 | Rejection of invention patent application after publication |