【原创】eclipse工作集
0赞面向微控制器的飞思卡尔CodeWarrior Development Studio v10.2版,将适用于ColdFire®、ColdFire+、DSC、Kinetis、Qorivva、PX、RS08和S08产品的开发工具集成到基于Eclipse开放式开发平台的单一产品之中。Eclipse提供的卓越框架可以构建软件开发环境,正在成为众多嵌入式软件供应商使用的标准框架。Eclipse是codewarrior IDE的基础,也是整个项目的基础。codewarrior项目试图可以显示所建项目及其具体内容。可是,长时期使用codewarrior的人就会发现,越来越多的项目堆积在工作空间内,这些项目还会附带好多资源。尽管开发环境拥有好多视图,但是所需要显示的内容却让我们难以应付。尤其是拥有大量项目的时候,各个工作空间之间的切换也十分的麻烦。本篇博文就介绍一种解决方法,eclipse ide 工作集(working set)。
工作集就是我希望能够同时运行的一个项目组。至少在我的整个项目中,它们都是互相联系的,因此就可以它们放在一个组合之中。工作集中的各个项目有着一种松散的关系。因为我通常都会同时使用许多项目,工作集可以让我同时将精力集中于正确的元素组合。更好的是,我可以运行属于工作集的项目。我能够定义我希望看到的工作集合,然后对它们进行操作。
构建工作集
工作集一个极具价值的特性是,我们可以迅速而且准确地构建一个项目集合。当请求构建工作集时,IDE可以将相关范围内支持的所有项目构建在之内。
制作工作集非常简单。使用Project > Build Working Set > Select Working Set(项目 > 构建工作集 > 选择工作集)创建或更改工作集(图1):
图1,菜单选择,选择一个工作集。
如果没有定义好的工作集,那么按照下图显示的对话,会提示点击New(新建)并且创建一个新的工作集(图2):
图2,创建一个工作集。
现在需要通知IDE如何处理工作集内包含的项目。即,需要指定工作集的类型。为了创建C/C++相关项目的工作集,选择C/C++并且点击Next(下一步)(图3):
图3,指定工作集中项目的类型。
接下来输入工作集的名称,选择其中支持的项目,并且点击Finish(结束)(图4)。在以下浏览器视图中列出了所提供的项目。
图4,定义属于工作集的项目。
为了构建项目集合,首先需要选择希望使用的工作集——在这个例子中为Test set(测试集)——并点击OK(图5):
图5,选择IDE运行的工作集。
当点击OK时,IDE会自动编辑并且链接所有与Test set(测试集)相关的项目。
这个例子是很简单的,他还不能体现出工作集的优越性来,等到处理大量的项目时就会出现众多的文件,届时他的优越性就会现楼无疑。例如,飞思卡尔的MQX RTOS构建了一个包含其内核、外壳、线路板支持包以及各种软件堆栈(例如文件系统和分类USB课程等)的工作集。RTOS来源由七个项目组成,每一个项目都包含上百个文件。为了修改嵌入式系统中的MQX,您需要编辑user_config.h文件中的一些值,然后利用Eclipse IDE构建MQX工作集。工作集不仅使这些更改操作变得更具管理性,而且更加轻松。
工作集的搜索
工作集的IDE搜索机制可能会受到限制。对此可以选择工作集作为搜索对话框的范围(图6):
图6,设置工作集的搜索范围。
管理工作集
为了管理工作集,首先按下CTRL+3显示IDE的Quick Access(快速访问)对话框(图7),然后键入working set:
图7,在Quick Access中选择Manage Working Sets(管理工作集)。
通过该对话框,利用一个或两个按键可以让我进入Manage Working Set Configurations(管理工作集)对话框(图8):
图8,选择工作集项目的启动配置。
此处可以观察到工作集中的每个项目是如何构建而成的。我能够创建新的和不同的配置:构建这个工作集的各种方式以及让每种方式变成有效的配置。
利用工作集实现项目视图过滤
可以通过使用工作集,过滤在CodeWarrior Project(CodeWarrior项目)视图中显示的项目。为此,可以点击View Menu(查看菜单)选项(视图角落处的小三角),或者选择/定义工作集,或者选择最为常用的工作集之一,如图9所示。
图9,选择显示的工作集。
本特性可以让我们轻松地专注于正在操作的项目子集,如图10所示。
图10,只显示所选工作集的项目视图。
这里有一个小提示:我通常利用工作集降低使用的工作空间数量。与其将各个项目分散在不同的工作空间,我更愿意将它们保持在一个工作空间之内,使用工作集仅显示那些我感兴趣的项目。除了在可管理层面保留信息之外,使用工作集还具有其他的好处:Eclipse中同时打开更少的项目可以加快IDE的运行速度。利用工作集,我可以在正在操作的项目集合之间实现快速切换。
但是,工作集的价值并不是停留在过滤项目方面。我们甚至还可以过滤项目内部的对象。我可以单纯取决选择我不希望看到的事物,这可以让我集中精力关注重要的事情。例如,图11表明CodeWarrior Project视图中只显示了项目的Source、Header和生成的输出(MCF51JM128_Internal_Flash)文件夹。
图11,过滤项目文件。
工作集的导出和导入
这一功能需要安装了带有MQX插件的MQX RTOS,或者AnyEdit插件。
在安装了MQX插件之后,输出工作集,我可以选择File > Export > Other > Export Working Set(文件 > 导出 > 其他 > 导出工作集)(图12):
图12,用于导出工作集的MQX插件。
这可以给出下列对话框(图13),在其中可以指定文件名称和项目根目录:
图13,导出工作集对话框。
这可以将工作集信息保存为XML文件。您通过选择File > Import > Other > Import Working Set(文件 > 导入 > 其他 > 导入工作集)导入工作集,然后打开XML文件。MQX插件也可以允许将导出工作集文件拖拽到CodeWarrior Project视图中,然后Eclipse IDE将会恢复工作集信息。
AnyEdit插件可以提供向导,处理工作集的导入和导出。最终,存储工作集信息的AnyEdit格式与MQX插件实施的格式不同,因此您不能将二者混合。
tips:我可以使用扩展文件*.wsd用于指定存储工作集信息的文件。方式便是简单将文件拖拽到Eclipse IDE从而将其导入。
其他种类的工作集
如图14所示,工作集信息的使用并不止于项目和文件。
图14,选择工作集类型。
我可以创建中断点工作集或分析/跟踪点工作集。我可以创建任意资源文件或任务的工作集。这些可能性几乎接近于无限选择,同时也取决于安装的插件。
窗口工作集
好了,您现在了解工作集可以控制Eclipse IDE中的众多元素这个概念:项目的集合、项目中文件的可见度、构建的因素、中断点、资源等。许多不同的视图和对话框都具有工作空间设置。问题在于每个视图都是独立的,并且拥有不同的工作集。保持它们的一致性非常困难。例如在图15中,左侧我使用了CodeWarrior Projects视图中的工作集,而我右侧的Search(搜索)对话框配置的是‘Kinetis’工作集。
图15,使用的两个不同工作集。
有时候我希望拥有这种布置,但并不是一直都希望这样。我需要的是一个“全局”工作集。窗口工作集(Window Working Sets)便可以提供这种帮助。
当创建了第一个工作集时,您可能已经注意到Window Working Sets(窗口工作集)的选项(图16)。它们都是什么?它们是用来做什么的?
图16,选择使用Window Working Set.
可以说单独的视图将会使用Window Working Set。但什么是Window Working Set呢?
我可以添加菜单和图标选项,设置并且切换用户界面(UI)顶部右侧的Window Working Set。首先,我需要选择Window > Customize Perspective(窗口 > 自定义角度)(图17)。接下来,我会选择Command Groups(命令组)标签,启用选项Window Working Set。还有一个好的想法便是同时启用选项Working Set Manipulation(工作集操作)。当您选择每一个选项时,其他栏会通知您菜单中出现的菜单选项和工具栏中出现的图标。
图17,选择Window Working Set命令。
为了控制可见度,您可以转到Tool Bar Visibility(工具栏可见度)和Menu Visibility(菜单可见度)标签。因为您刚刚打开命令组,图标和菜单选项应该为默认状态。所以工具栏上的图标可以让我迅速设置Window Working Set,或者编辑工作集(图18):
图18,通过工具栏配置工作集。
我也可以通过Window菜单完成同样的操作(图19):
图19,访问工作集的菜单。
在单独的视图中(图20),我希望使用Window Working Sets而不是选择特定的工作集:
图20,选择全局Window Working Set。
现在我的工作集已经实现了所有视图的共享与通用。如果我切换了Window Working Set,IDE可以更改所有视图的显示,在其中我设置视图以便能够使用Window Working Set(图21):
图21,适用于多个视图的Window Working Set。
这样可以确保我的工作集配置在视图范围内完全相同,我可以只需点击鼠标便在不同的设置之间进行切换。
总结
工作集具有极其强大的功能特性,可以让我们专注于Eclipse环境内容的元素子集。与众多重要的Eclipse特性相互结合,只有意识到并且显示出如何利用它们的优势时,才会真正领会它们的能力。
谢谢各位