??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲v国产v天堂a无码久久,亚洲av无码国产综合专区,综合一区自拍亚洲综合图区http://m.tkk7.com/conans/category/32509.html你越挣扎我就兴?/description>zh-cnSun, 22 Jun 2008 13:20:18 GMTSun, 22 Jun 2008 13:20:18 GMT60Mylyn 2.0Q第 2 部分: 自动上下文管?/title><link>http://m.tkk7.com/conans/articles/209879.html</link><dc:creator>CONAN</dc:creator><author>CONAN</author><pubDate>Sun, 22 Jun 2008 10:52:00 GMT</pubDate><guid>http://m.tkk7.com/conans/articles/209879.html</guid><description><![CDATA[<blockquote>现在Q在 2.0 版中QMylynQ以前称?MylarQ通过Q务无~集成到 Eclipse 中ƈ在工作时自动理d上下文,提高?jin)效率。Mylyn 目ȝ Mik Kersten 更新?jin)他撰写的分两部分?Mylyn 使用指南?a cmimpressionsent="1">W?1 部分</a> 介绍 Mylyn 的Q务管理功能和它与 Bugzilla 之类的储存库的集成。本文ؓ(f)W?2 部分Q解释当?Eclipse 中处理大型应用程序时QMylyn 的上下文理功能如何化多d处理以及(qing)如何减少信息蝲?/blockquote><!--start RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--end RESERVED FOR FUTURE USE INCLUDE FILES--> <p>?<a cmimpressionsent="1">本文的前半部?/a> 中,我解释了(jin) Mylyn 的Q务管理功能如何轻村֜聚焦与给定工作日或工作周相关的Q务。一旦Q务成为?zhn)?Eclipse 体验中的集成部分Q?zhn)很可能?x)注意到许多重复性行为都是以所处理的Q务的<em>上下?/em> Z?j)的。多d处理是当今知识工作中很普遍的一部分Q它常常需要创建和重新创徏与当前Q务相关的上下文。Q务的上下文是指在处理d旉要引用的所有文件、搜索结果和其它相关信息。例如,在编E时Q可能只想看C正在修复?bug 相关?Java™ 元素。当完成修复Ӟ(zhn)可能希望以独立于当天处理的其它d的方式提交这些更攏V或者,希望通过只运行与对Q务作出的更改相关的测试来节省旉?/p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="smart"><strong>什么 Mylyn 变得 “灵y” ?/strong></a><br /> <p>管 Mylar l常被称作灵巧的用户界面Q但它本wƈ没有M灵y之处Q它只不q是利用?jin)(zhn)的智慧。Mylyn 通过利用q样一个事实做到这点:(x)与每个Q务涉?qing)的l节相比Q组成工作的各个部分Q即(zhn)所处理的Q务)(j)更加Ҏ(gu)(g)索。它以一U可预测的方式自动捕捉?zhn)所处理的所有细节,使?zhn)无需再经历重新检索或重新查找的繁琐过E。Mylar 上下文是(zhn)同pȝ元素?qing)关p进行交互的一U可预测的投影,它ƈ没有使用难于预测和理解的知识型模型。这U模型十分灵z,正逐渐被扩展到q泛的知识工作工具中。请参阅 <a cmimpressionsent="1">参考资?/a> 节Q了(jin)解更多关?Mylyn 内部原理和架构的信息Q以?qing)?f)目扩展 Mylyn 的更多细节?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>正如 Mylyn 可以帮助(zhn)聚焦工作周所包含的Q务一P它可以 Eclipse 工作焦与当前d相关的工件上。安?Mylyn ?Task-Focused UI 之后Q只需指出zd的Q务,(zhn)所使用的所有文仉自动添加到该Q务的上下文中。管理上下文是ؓ(f)?jin)精地表示出对所从事的各U工件的聚焦E度Q即使对长期q行的Q务也是如此。当切换dӞ上下文将被保存,q(zhn)可以通过一ơ单击进行多d处理Qƈ且轻村֜与其他h׃n特定于Q务的知识?/p> <p>本文解释?Mylar 如何无缝地将其置?Eclipse UI 之上来凸现编EQ务的上下文。本文首先解?Mylyn 理上下文的机制Q然后介l兴修饰、视图过滤、编辑器理和上下文驱动的单元测试套件等 UI 工具。在文章的最后,展示?jin)如何综合运?Mylar 的Q务管理和上下文管理来协助团队协作?/p> <p>?1 中的~号区域昄?Mylyn 的一些上下文理功能Q?/p> <ol> <li>单击 <strong>Focus on Active Task</strong> 按钮可以?Eclipse Package Explorer 只显C活动Q务的上下文中的元素? <li>可以通过 Task List 切换zdd? <li>切换后,Eclipse 视图和编辑器聚焦于新激zȝd的上下文? <li>更改集将被自动管理,以反映Q务上下文中的更改? <li>折叠功能和上下文可以帮助视图聚焦相关的元素?</li> </ol> <br /> <a name="fig1"><strong>?1. ?Eclipse 聚焦于Q务上下文</strong></a><br /> <img height="477" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-overview.jpg" width="570" /> <br /> <p>单击 <a cmimpressionsent="1">q里</a> 查看全图?/p> <p><a name="N100A8"><span id="wyptfla" class="atitle">以Q务ؓ(f)中心(j)的编E?/span></a></p> <p>设想一下,假设(zhn)正在将更改装到新功能里,来应对迫q的代码ȝ期限。在工作中,创徏此功能时Q构Z(jin)关于所有修改过的类和方法以?qing)所有访问过?API 的颇有h(hun)值的知识。由于在使用 MylarQ这个知识会(x)自动地在d上下文中获取到。Q务要完成Ӟ却出C(jin)一个严重的 bugQ需要立即给予注意?/p> <p>(zhn)通过单击Ȁz?bug 报告Qƈ开始调查该问题。在 Mylar 的富d~辑器中览?bug 加了(jin)链接的堆栈跟踪Q新的Q务上下文被探查和诊断l果所填充。当单击 Mylyn 的自动化 Context Test SuiteQ该套gq行与已创徏的Q务上下文l构相关的单元测试)(j)Ӟ(zhn)发现这?bug 位于一个同事的代码中,而不在?zhn)的代码中。由?Mylyn 提供?jin)对d的修改历史的链接Q?zhn)可以立即查看该同事的dQ它对应于出现问题的更改。通过再一ơ单击,该 bug 再分配给同事q共享由(zhn)的诊断得出的Q务上下文。完成这些都未离开 EclipseQ所以通过单击 Task List ?<strong>Back</strong> 按钮可以立即回到之前d的上下文。同Ӟ(zhn)的同事也恰在?zhn)停止的地?gu)赯 bug 报告。这只是E序员?Task-Focused UI L工作和协作的场景之一?/p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="support"><strong>支持的工?/strong></a><br /> <p>cM于需要?em>q接?/em> 与Q务储存库集成QMylyn 使用<em>桥接器(bridgeQ?/em>它的上下文模型与特定于域的工具集成。Mylyn 附带?jin)用?Eclipse SDK 的一l核?j)的桥接器,其中包括?Java 代码、JUnit、Plug-in Development Environment (PDE)、Ant 和纯文本文g的支持。ؓ(f)?jin)获得完全集成的体验QMylyn 需要一个用于所有要使用的工具和语言Q例?Ruby ?JSPQ的桥接器。如果缺特定于(zhn)所使用的编E语a或其它文件类型的桥接器,Mylyn 仍然?x)提供文件别的聚焦Q但是不能监视?zhn)与文件内部结构的交互Q例如编辑特定的声明Q。这意味着?Package Explorer 中只能看到感兴趣的文Ӟ但是不能执行l粒度的声明qo(h)Q例如在 Outline 视图中)(j)以及(qing)在编辑器中自动折叠声明,也不具备诸如d Context Test Suites {高U特性?/p> <p>Z(jin)提供 <a cmimpressionsent="1">自动化更攚w理</a>QMylyn q需要对版本控制集成q行某种扩展。Mylyn 附带?jin)?CVS 的支持,但是?Subversion {其它版本控制系l的支持则需要单独安装。请查看 <a cmimpressionsent="1">参考资?/a> 中的 Mylyn Extensions 清单Q下载用?Mylyn 的额外的桥接器和版本控制集成?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>接下来的节展示如何利用 Mylyn 的上下文理功能以Q务ؓ(f)中心(j)的方式工作。虽然这里的例子Z Java 开发,但其中的概念和大多数Ҏ(gu)同样适用于可能用的MZ文g的工件。(请参?<a cmimpressionsent="1">支持的工?/a>Q了(jin)解更多细节。)(j)</p> <p><a name="N100DD"><span id="zhbesjm" class="smalltitle">兴趣{模型</span></a></p> <p>Mylyn 中的d上下文管理基于这L(fng)思想Q开发h员与pȝ的交互可以{换ؓ(f)一?em>兴趣{Qdegree-of-interestQ模?/em>Q在该模型中Q系l中的每个元素都Ҏ(gu)其与手头d的兴等U来衡量其权重。这U相兛_加权形成?jin)与d相关的所有元素的上下文。然后,可以通过H出最重要的元素、过滤无关紧要的元素以及(qing)允许在感兴趣的元素上执行操作Q例如,只提交相x改)(j)来d上下文聚焦于 UI。Q务上下文是在(zhn)工作时以一U可预测的方式构建的Q当(zhn)激zM个Q务时Q?zhn)选择或编辑的每个元素 —?例如文g?Java Ҏ(gu) —?成ZQ务上下文的一部分。和元素交互多Q该元素相对于Q务的兴趣{񔞮p高。如果一个元素的兴趣U别_高,那么它就成ؓ(f)一?em>里程(landmarkQ?/em>Q这是一个隐式创建的书签。每一ơ交互也Dl成d的所有元素已U篏的兴逐渐衰减Q这样兴元素的集合׃(x)同当前的兴趣相匹配,而不?x)无限制的扩张下厅R?</p> <p>使Q务上下文模型单易用的关键特征是它h可预性ƈ且一目了(jin)?dng)?x)(zhn)期望看到的内容显C在眼前Q每当?zhn)开始处理一个元素时Q就立即可以看到该元素填充了(jin)上下文。还可以直接操纵元素的兴等U,或者元素变得不相养I或者显式地元素标Cؓ(f)里程。换句话_(d)(zhn)已l熟(zhn)的 bookmark/starring/tagging UI 没有M损失。但是,一旦?zhn)习(fn)惯使?MylynQ?zhn)很可能?x)发现自己寚w些手动管理Q务上下文的机制的依赖性大大减?/p> <p><a name="N100EF"><span id="rhgifgn" class="smalltitle">兴趣修饰和过?/span></a></p> <p>Mylyn 的上下文理功能使用传统?Eclipse 视图以一U新的方式来凸现信息。?zhn)只需通过一ơ单?yn)LzMQ务,可以 Eclipse UI 聚焦于那个Q务。然后,(zhn)与之交互的每个元素都成ZQ务上下文的一部分。Mylar 兴趣修饰器随后用字体着色来高亮昄每个元素从交互中U篏的兴等U。非兴趣元素以灰色显C,兴趣元素以黑色显C,里程ؓ(f)_体?/p> <p>管只高亮显C在减少信息q蝲斚w有其局限性,但它q是一直应用于所有能看到诸如 Java 成员和文件等元素的视图中。这便于(zhn)在查看一长串的元素时快速挑选Q务上下文中的元素。例如,当查看搜索结果时Q可以立卛_现最感兴的元素Q因为它们以_体修饰为里E碑形式Q参?<a cmimpressionsent="1">?2</a>Q?/p> <p>仅仅使用修饰q不以减少包含几十万个文g的大型工作区中的信息蝲。一些结构化视图Q例?Eclipse ?Project ExplorerQ在览大型层次l构内容斚w已变得o(h)人难以置信的高效。超载问题与那些视图无关Q而应该归因于开发h员用的巨大的信息系lƈ不匹配与Ml定~程d相关的相对较?yu)的信息。对于这U不匚wQ最明显的表现是Q大量时间浪费在反复滚动以及(qing)展开/折叠庞大的树(wi)视图以查扑֮成工作所需的信息?/p> <table cellspacing="0" cellpadding="0" width="55%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="support"><strong>技巧:(x)不过滤子节点</strong></a><br /> <p>Z(jin)减少需要关闭聚焦模式的ơ数QMylyn 提供?Alt+Click 机制Q(zhn)可以在?wi)视图中暂时不过滤一个节点的子节炏V例如,Z(jin)选择一个不可见的方法,可以按住 Alt 键ƈ单击c,q择那个Ҏ(gu)Q以便将它添加到d上下文中。如果在视图中的I白处按?Alt q单击鼠标,则会(x)昄所有的根节点(例如目Q。如果l按?Alt 键,可以快速地从一个项目节点导航到感兴的Ҏ(gu)?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>Mylyn 的目标是消除所有不需要的滚动和单?yn)L作。ؓ(f)此, Task-Focused UI 提供Z兴趣的过滤和l构化视囄理。通过 <strong>Focus on Active Task</strong> 按钮ȀzdQ这些功能可以过滤掉所有不感兴的元素Q从而将相应的视图聚焦于zdd的上下文。例如,聚焦模式保 Package Explorer 只显C?zhn)正在处理的内容?x)属于d的一部分的所有源文g、库文g和方法。除?jin)过滤外Q当应用聚焦ӞMylyn q自动维护树(wi)视图的展开状态,所以?zhn)不需要手动地展开和折叠树(wi)节点p看到感兴的元素?/p> <p>开始在视图上用聚焦模式后Q?zhn)注意到兴趣模型如何随着工作而演q。一个元素的被选中ơ数多Q元素的兴趣{񔞮p高,直到它变为粗体的里程。低兴趣的元素(如只选过一ơ的搜烦(ch)命中l果Q将在兴等U中衰减q从qo(h)q的视图中消失,q确保该视图不会(x)被非兴趣元素所胀满。由于Q务上下文在一U可预见的模式下被积极地理Q上下文只包括了(jin)有兴等U的元素Q即使在长期q行的Q务中也是如此。尽设?Mylar 的Q务上下文模型是ؓ(f)?jin)能够一直反映当前与d相关的东西,但也可以手动地增加或减少元素的兴等U(例如Q通过使用元素的上下文菜单行ؓ(f)或用快捷键 Ctrl+Alt+Shift+ 向上/向下的箭_(d)(j)?/p> <br /> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br /> <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br /> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br /> </td> <td valign="top" align="right"><a class="fbox" cmimpressionsent="1"><strong>回页?/strong></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p><a name="N10118"><span id="wjrthcy" class="atitle">以Q务ؓ(f)中心(j)的工作区</span></a></p> <p>在深入探?Mylyn 提供的用于支?Java 开发的高集成之前Q?zhn)需要大体了(jin)解在处理U文本文件时QTask-Focused UI ?Eclipse 工作区的关键贡献。图 2 演示?jin)这些关键概念?x)</p> <ul> <li>在左侧,Project Explorer 视图聚焦于活动Q务,它只昄感兴的文gQƈ高亮昄里程。在q里Q可以?Alt+Click 机制临时昄一个名?presentations 的目录中的所有文Ӟ以便选择其它感兴的文g?br /> <br /> <li>在右侧,Task List 昄一个活动Q务。当该Q务停止活动时QPackage Explorer 视图上的焦点被关闭,当前打开的所有文件被关闭。如果一个新的Q务被Ȁz,则重新应用焦点,用于处理那个d的所有打开的编辑器立即恢复?</li> </ul> <br /> <a name="fig2"><strong>?2. 以Q务ؓ(f)中心(j)的工作区</strong></a><br /> <img height="544" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-files.jpg" width="572" /> <br /> <p>本文后面的内容以 Java 开发ؓ(f)例,较详l地阐述如何以以dZ?j)的方式工作。但是,dȀzR视图聚焦和~辑器管理等概念是?Mylyn 的最值得注意的关键方面。?zhn)只需理解dȀzȝ概念Q就可以开始用以dZ?j)的方式工作。这U小但重要的工作方式的改变会(x)立即使?zhn)L(fng)Q当(zhn)切换Q务时Q?zhn)在工作中建立h的所有有价值的上下文不再会(x)丢失?/p> <table cellspacing="0" cellpadding="0" width="55%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="support"><strong>技巧:(x) 配置 Task-Focused UI </strong></a><br /> <p>默认情况下大多数 Task-Focused UI Ҏ(gu)都是打开的,但是可以通过视图或编辑器中相应的按钮或者偏好设|关闭它们。要?jin)解更详l的信息Q请参阅 Mylyn FAQ Q见 <a cmimpressionsent="1">参考资?/a>Q?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p><a name="N10152"><span id="bdlpsef" class="atitle">?Java 开发中使用 Mylyn</span></a></p> <p>?Mylyn 用于 Java ~程的开发h员常怋 Package Explorer 处于聚焦模式。因此,默认情况下,当激zM个Q务时Q?strong>Focus on Active Task</strong> 按钮自动打开Q当一个Q务变ZzdӞ该按钮自动关闭。当该功能打开Ӟ只能看到上下文中?Java 元素。当选择一?Java cLQ不是通过览q是通过常用?Open Type 机制QCtrl+Shift+TQ,q种cd成Z下文的一部分Qƈ昄在过滤后?Package Explorer 中。?zhn)选择和编辑的每个Ҏ(gu)都被dCQ务上下文中,因此?x)显C在 Package Explorer 中。图 3 昄聚焦模式下的 Package Explorer。注?Package Explorer ?Debug 视图?Java 元素的基于兴的修饰和活动过滤?/p> <br /> <a name="fig3"><strong>?3. ?Java 元素视图聚焦于Q务上下文</strong></a><br /> <img height="453" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-java.jpg" width="572" /> <br /> <p>当视囑֜聚焦模式ӞEclipse 用于打开元素的工兯行良好(使用 Ctrl+Shift+T 打开一个类型,使用 Ctrl+Shift+R 打开一资源,Ctrl+O 用于地打开大纲QCtrl+T 用于地打开层次l构Q。ؓ(f)使在 Open Type 对话框中选择cd更加单,感兴的cd被自动放在列表的最上面。当切换dӞ列表中包含新d感兴的cd。当没有zddӞ该列表恢复ؓ(f)最q用类型的 Eclipse 全局列表?/p> <p>如果使用 Java Browsing 透视图,请用窗口的工具栏按钮,通过单击三U?Java 元素视图设ؓ(f)聚焦模式Q而不必逐个聚焦每个视图?/p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="support"><strong>技巧:(x)快速视?/strong></a><br /> <p>如果使用没有可见D视图的透视图(例如 Debug 视图Q,或者将~辑器区域最大化Q那么仍然可以从 <strong>Navigate > Quick Context View</strong>Q快捷键?Ctrl+Shift+Alt+右箭_(d)(j)D上下文。和 Quick Outline (Ctrl+O) {其它快速视图一Pq种弹出视图的优Ҏ(gu)允许(zhn)输入,以导航到感兴的文g或元素?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p><a name="N10184"><span id="trowtjo" class="smalltitle">自动折叠和内容辅助排?/span></a></p> <p>Eclipse 成熟?Java ~辑器(zhn)可以在~辑器中处理大多数结构导航。此外,Mylyn q提供了(jin)自动折叠和内容辅助排序,以帮?Java ~辑器聚焦与当前d相关的元素。如果打开H口工具栏中 Mylyn ?<strong>Automatically Fold Uninteresting Elements</strong> 按钮Q那么在~辑器中只有感兴的元素被展开。这可以增加~辑器的信息密度Qƈ且更易于D大型文g中的声明Q而不必打开 Outline 视图。当选择一个元素时Q它立即成ؓ(f)d上下文的一部分Qƈ且被展开。注意,在图 4 中,大多数元素都是折叠的Q因为它们没有被选择或编辑过Q同Ӟzd元素是打开的,左边的编辑器装订U提C它是一个里E碑Q?/p> <br /> <a name="fig4"><strong>?4. 自动折叠和内容辅助排?/strong></a><br /> <img height="356" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-java-editor.jpg" width="572" /> <br /> <p>与视图中的过滤相|Mylyn q根据兴等U对 Java 内容辅助q行排序。在兴趣分隔W下的所有条目都使用 Java Development Tools 的标准排序试探法q行排序。这意味着Q只需按几ơ向下箭头键可以选择感兴的。如果在选择前开始输入,该列表会(x)恢复为典型排序。还应注意到Q在?4 中,诸如 <code>getTask()</code> {感兴趣的方法在~辑器中也是展开的。公开元素兴趣{的各U机刉的一致性有助于 Focused UI 变得可预见且易于使用?/p> <p><a name="N101A6"><span id="ylexykt" class="smalltitle">自动~辑器和透视囄?/span></a></p> <p>Mylar 也用Q务上下文来动态地理和Q务相关的打开~辑器的数目。当文g中的元素从兴等U中衰减Q该~辑器会(x)自动关闭。当停用一个Q务时Q它所有的~辑器都?x)关闭,dȀzL重新打开。减元素的兴趣{?x)关闭其~辑器,且反之亦?dng)关闭一个文件也?x)减其兴趣{。这可能需要一Ҏ(gu)间才能适应Q但是这意味着(zhn)不再需要自q理打开的编辑器的状态,q且打开的编辑器的数量也不至于太多。确保所有打开的编辑器与感兴趣的元素相对应Q这q(zhn)可以?Eclipse 的编辑器D功能在感兴趣的文件之间导航。例如,如果 Package Explorer 之类的导航视图不可见Q可以?Ctrl+E ?Ctrl+F6 方便地在~辑器之间切换?/p> <p>同样QMylar 也能通过恢复上次完成一Q务时Ȁzȝ透视图(通过单击 <strong>Window > Preferences > Mylyn > Context</strong> 启用Q来理 Eclipse 的透视图。当不同的Q务对应于 Eclipse 提供的不同视图(例如Q有些Q务对应于 Java 开发,有些d对应?PHP 开发)(j)Ӟq一点很有用。当使用 Mylyn ?Planning 透视图时Q该功能特别用。如果在没有zdd时切换到 Planning 透视图,那么当停止要处理的下一个Q务时Q就?x)自动切换到那个透视图。?Planning 透视囑֏以更Ҏ(gu)地发现接下来要处理哪个Q务,因ؓ(f)q个透视图会(x)Q务编辑器?Task List 的区域最大化?/p> <p><a name="N101B5"><span id="yhhpmnz" class="smalltitle">使用 Ant、PDE 和其它源文g</span></a></p> <p>Mylyn 的聚焦功能可以应用于所有在 Eclipse SDK 中显CZ下文的视图:(x)Package Explorer、Navigator、Project Explorer、Outline、Problems、Tasks、Debug、Packages、Types ?Members。Q何树(wi)视图的聚焦模式,?Project Explorer 都添加了(jin)兴趣修饰、过滤和展开理。在聚焦模式下,列表视图Q例?ProblemsQ也?x)按照兴等U分cR由于这U通用的支持,即定制的桥接器不支持?zhn)的工P?<a cmimpressionsent="1">支持的工?/a>Q,仍然可以?Mylyn 用于?Java 目Q例?PHP 开发。本节简要地概述如何?Mylyn 用于使用其它语言和工L(fng)~程。要?jin)解更多信息Q请讉K <a cmimpressionsent="1">参考资?/a> 中的 Mylyn Extensions 链接?/p> <p>例如Q考虑使用 Ant ?PDE 开发一个应用程序。在q个场景中,Eclipse 工作区看上去和图 5 cMQ其中有多个视图被打开Qƈ昄上下文:(x)</p> <br /> <a name="fig5"><strong>?5. 佉K用 IDE 视图聚焦于Q务上下文</strong></a><br /> <img height="431" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-ant.jpg" width="572" /> <br /> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="support"><strong>技巧:(x)清理 to-do 标记</strong></a><br /> <p>?Mylyn ?Task List 视图相比QEclipse SDK ?Tasks 视图昄 to-do 标签{标讎ͼq种标记指示与一个资源有关的本地问题Q类g~译器警告。与 Mylyn 的Q务相比,q些标记的粒度要得多,因ؓ(f)它们对应于数行源代码Q而一?Mylyn d可能包含多个标记。由?Tasks 视图很快?x)发生超载,因此使用聚焦模式可以很方便地提醒开发h员在提交前清?to-do 标记?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>注意Q图 5 中的 Project Explorer 视图只显CZQ务上下文中的文gQ这里包括一些图像和 XML 文g。打开的文件是 build.xmlQ该文g由数十个 Ant 声明l成。在 Outline 视图中,只能看到(zhn)正在处理的声明Q而不是许多不感兴的声明。Problems 视图也聚焦于zddQ只能看到感兴趣的东西(如所有的错误?qing)警告或d上下文中其他的元素标讎ͼ(j)Q而不是被数百条无关的警告堆满而超载。最后,Eclipse Tasks 视图也处于聚焦模式,因而将只看Cd上下文相关的标记Q而不?x)看到数百条不?x)立即d?to-do 标记?/p> <p><a name="N101E8"><span id="oxwlijg" class="smalltitle">Context Test Suite</span></a></p> <p>在以dZ?j)的方式下编E更易于频繁q行单元试。通常来说Q单元测试实践让(zhn)ؓ(f)一个或多个当前正在从事的枯燥测试创Z个新的测试启动程序。其他的试Ҏ(gu)是:(x)在一个项目上q行所有测试,q会(x)错过一些相x试;或运行一整套试Q这很慢。ؓ(f)解决q些问题QMylar 在Q务上下文中自动维护了(jin)元素的单元测试套?—?UCؓ(f) Context Test SuiteQ见?6Q—?q在操作d时重复q行试变得很简单(用快捷键 F11Q:(x)</p> <br /> <a name="fig6"><strong>?6. Context Test Suites</strong></a><br /> <img height="270" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-suite.jpg" width="497" /> <br /> <p>要启用该Ҏ(gu),?JUnit Plug-in 试或普?JUnit 试创徏一?Context Test Suite。Context Test Suite 被自动更斎ͼ以包括当前活动上下文中的所有测试用例?/p> <br /> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br /> <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br /> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br /> </td> <td valign="top" align="right"><a class="fbox" cmimpressionsent="1"><strong>回页?/strong></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p><a name="N10203"><span id="eczolfr" class="atitle">上下文用于协作</span></a></p> <p>协作性工具都是关于共享信息的QQ务上下文能聚焦于该信息而阻止信息超载和分散。开发h员不断来回发送电(sh)子邮件、即时消息及(qing)文gQ来交换执行日常d所需的必要消息。尽?Mylar 仍没有排除对x消息或电(sh)子邮件的需要,但它能够通过它们锁定在d周围来简化一些协作活动。由于Q务定义了(jin)清晰、易于理解的工作单元Q且d上下文定义了(jin)与工作相关的信息Q所以用单击来共享Q务上下文的功能能够减协作通信负担?/p> <p>?<a cmimpressionsent="1">W?1 部分</a> 中,我演CZ(jin) Mylyn 的Q务管理如何将Z Web 的储存库Q如 BugzillaQ集成v来,从而提供了(jin)(zhn)期待从?sh)子邮g客户Z得到的那U协作集成程度和响应E度。这一节则解释 Mylar 对跟t更攚w和Q务活动的自动支持Q联合了(jin)对上下文׃n的支持)(j)是如何进一步便利了(jin)团队工作?qing)获取专门技术的。通常Q?zhn)可以?gu)需要以?Mylar 同源文g?qing)Q务存储库集成的程度挑选要使用的功能?/p> <p><a name="changesets"><span id="uspmukl" class="smalltitle">自动化的更改?/span></a></p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="support"><strong>技巧:(x)更改集模?/strong></a><br /> <p>Eclipse 有两U更攚w模式Q?.2 版中新出现的Z模型的更攚w和标准更攚w。尽这些模式实际上很难辨别Q但是基于模型的模式较ؓ(f)可取Q因为它同时昄引入和传出的更改。要?jin)解关于在这两种模式之间切换的详l信息,请参?Mylyn FAQQ参?<a cmimpressionsent="1">参考资?/a>Q?</p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p><em>更改?/em> 是一用于对资源分组的内|的 Eclipse 工具Q可以在 Synchronize 视图中对其进行操作,以提交、更新或创徏补丁。除非在一个静(rn)态的目中工作,否则手动理更改集常常得不偿失。Mylar 通过自动理更改集便利了(jin)Ҏ(gu)存储库的操作。一旦激zMQ务,该Q务的更改集即被添加,q后显C在 Synchronize 视图Q见?7Q中。操作该d时做出的更改被添加到该更攚w中。可以用位于视囄 Change Set 节点的上下文菜单来覆盖、提交或创徏一个补丁。由团队成员做出的更Ҏ(gu)照Q务分l显C,可以通过右键单击一个引入的更改集来打开相应的Q务。如果有?jin)更改,但Q务停用,更改集不变,使?zhn)可以同时操作多项传出更改。Mylar 保在上下文和更攚w之间的一对一映射Q所以如果将一份文件手动地d到更攚w中(通过 Synchronize 视图中的上下文菜单)(j)Q该文g也会(x)被添加到上下文中。当前支持的源存储库?CVS ?SubversionQ包?Subclipse ?SubversiveQ?/p> <br /> <a name="fig7"><strong>?7. 更改集管理ƈ其映射CQ?/strong></a><br /> <img height="435" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-changeset.jpg" width="481" /> <br /> <table cellspacing="0" cellpadding="0" width="60%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="support"><strong>技巧:(x)项目与d储存库关?/strong></a><br /> <p>Z(jin)Ҏ(gu)本和 Java ~辑器的引用启用链接,例如对于 Bugzilla ?“see bug 123”Q或者对?JIRA ?“ABC-123”Q必d与资源对应的目与一个Q务储存库相关联。ؓ(f)此,可以右键单击目Q选择 <strong>Properties</strong>Q然后选择 <strong>Task Repository</strong>。每?Mylyn 解析资源中对d的引用时Q都要用项目到d储存库之间的q种兌Q所以这U关联对?History ?Team Annotation 链接也是必需的。如果项目是׃n的,可以该讄攑օ版本控制中?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>管一开始效果也怸明显QMylar 使用上下文将d和资源绑CL(fng)Ҏ(gu)对(zhn)工作的方式产生Ҏ(gu)性媄(jing)响。例如,对于 Mylar 目本nQ不需要编写提交消息,因ؓ(f)它们是由 Mylar 的更攚w集成Q?<strong>Window > Preferences > Mylyn > Team</strong> 面~辑用于生成自动提交消息的模板)(j)自动生成的。这使我们能够通过单击?History 视图D至与修订相对应的dQ这节省?jin)跟t更改及(qing)修订臛_始Q务的旉。相反地Q这也得可以通过 CVS 日志查询所有针对一个特定Q务更改过的文件。这个功能与 Eclipse 用于昄 Team Annotations 的功能和 Mylyn 的普通超链接Q见?8Q相l合Q意味着(zhn)将大量减少p在查找与一个更改相关的 bug 或Q务上的时_(d)因ؓ(f)通常只需一ơ单d可完成。(注意Qؓ(f)?jin)在弹出的文本编辑器中显C链接Q必L?Ctrl 键,如果要将弹出H口攑֜最前面Q需要按 F2 键)(j)?/p> <br /> <a name="fig8"><strong>?8. 链接和团队注释</strong></a><br /> <img height="143" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-annotations.jpg" width="544" /> <br /> <p><a name="N10268"><span id="kltxbrd" class="smalltitle">׃n上下?/span></a></p> <p>d上下文获取执行Q务时创徏的知识。重新激zM个Q务会(x)立即?zhn)带回到该d的上下文Q而不是迫使?zhn)恢复与该d相关的那部分pȝ。如果半途将dUMl团队成员,d上下文会(x)Z或她提供一个v炏V由于上下文是从交互中创建的Q而不仅从更改中创建,每个d上下文都包含?jin)相关信息,如处理该d时访问过?API 以及(qing)引用q的文档。ؓ(f)支持q个?qing)类似的协作场景Q如l对~程Q,上下文能被轻易地׃n。可以通过 Task ListQ如?9Q中的上下文菜单或通过单击d~辑器中相应的复选框来激zM下文׃nQ?</p> <br /> <a name="fig9"><strong>?9. 通过d附gq行上下文共?/strong></a><br /> <img height="391" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn2/part2-sharing.jpg" width="540" /> <br /> <p>当用支持附件的d存储库连接器Ӟ可以Q务上下文附加?bug 报告中来L地实现共享。当获取一个共享上下文Ӟ可以从所有可用的上下文中选择Q如果当前有多个上下文的话)(j)。例如,?Mylar 目中,我们上下文附在每一个解决了(jin)?bug 报告中,q且要求每一个A(ch)献的补丁都要附上上下文。这U通过上下文共享专门技术的Ҏ(gu)使应用补丁、与团队成员协作处理 bug 报告、在l对~程?x)话l束后清理代码变得更加简单。所有已解决?bug 都存储了(jin)一个上下文Q这一事实意味着只要 bug 被重新打开或类似的错误发生Q我们都能立x复ƈ使用q去的技术?/p> <br /> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br /> <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br /> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br /> </td> <td valign="top" align="right"><a class="fbox" cmimpressionsent="1"><strong>回页?/strong></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p><a name="N10283"><span id="ktqyvpu" class="atitle">l束?/span></a></p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="performance"><strong>性能斚w如何Q?/strong></a><br /> <p>Mylyn 的设计确保它的上下文理功能不媄(jing)?Eclipse 的性能。无论?zhn)使用的系l大如何,Mylyn 都可以做到这一点,因ؓ(f)d上下文只与?zhn)所做的量交互对应Q而与(zhn)用的pȝ的大没有关pRMylyn 对内存或速度的Q何明昑֪(jing)响都被视作一?bugQ都应该作ؓ(f)严重问题q行报告。而且Q当没有zddӞMylyn 的Q务上下文理是完全休眠的。要?jin)解关?Mylyn 性能的更多信息,请参?Mylyn FAQQ参?<a cmimpressionsent="1">参考资?/a>Q。要打开 Eclipse 的内存监视器Q可以?<strong>Window > Preferences > General > Show Heap Status</strong>?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>在这个由两部分组成的文章中,我介l了(jin)如何?Mylar q行以Q务ؓ(f)中心(j)的编E。我展示?Mylar 是如何通过Q务作?Eclipse 中头{重要的部分对待而让(zhn)日常的工作变得相当地简单。我也介l了(jin) Mylar 如何使用 Eclipse 视图来帮助?zhn)聚焦于手边的dQƈZ人及(qing)团队的用凸现这些Q务的上下文?/p> <p>Mylar 背后的哲学是<em>就是多</em>。它?yu)集成的d理和自动上下文理工具l合使用Q(zhn)能够在不丢׃下文的情况下q行多Q务处理,q确保?zhn)只需要查看感兴趣的信息。一个针对于?Mylar 用于日常工作的业内开发h员所做的现场用户的研I已l验证了(jin) Mylar 的Q务上下文模型Q参?<a cmimpressionsent="1">参考资?/a>Q。根据统计,q些用户的生产率有了(jin)显著的提高。而且Q由于进行了(jin)数千?bug/增强报告QMylyn 2.0 很快成熟hQ满_快速增长的用户C֌的需要。自从在 2004 q?8 月创?0.1 原型以来Q我一直将 Mylyn 用于我的所有工作。和很多其它 Mylyn 用户一P我已l无法想象还要手动寻扑ƈ识别工作中的相关信息的情景了(jin)。我完全依赖 Mylyn 来管理工作中的大量以dZ?j)的交互和多d处理?/p> <p>如果 Mylar 支持(zhn)的d存储库,它能使?zhn)的日常工作变得更加简单、更加有效且更加专注。如果它不支持?zhn)的Q务存储库Q?zhn)可以试着用它来完成个ZQ务。不何U情况,都请使用 Bugzilla 集成来给出回馈ƈ为?zhn)愿意看到被支持的其他q接器投。(参见 <a cmimpressionsent="1">参考资?/a>Q。?zhn)的A(ch)献将帮助我们q一步改q?MylynQ因为它?yu)持l围l严密的回馈机制快速发展,该工hw允许我们通过用户C֌建立q种回馈机制。其?Mylyn 提交者和我一P都期待收到?zhn)的回馈?/p> <table cellspacing="0" cellpadding="0" width="150" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N102B5"><strong>分nq篇文章……</strong></a><br /> <p> <table cellspacing="0" cellpadding="0" width="135" border="0"> <tbody> <tr> <td colspan="2"><img height="5" alt="" src="http://www.ibm.com/i/c.gif" width="1" border="0" /> </td> </tr> <tr valign="top" align="left"> <td width="21"><a cmimpressionsent="1"><img height="10" alt="digg" src="http://www.ibm.com/i/v14/icons/10x10-digg-thumb.gif" width="10" border="0" /> </a></td> <td><a cmimpressionsent="1">提交?Digg </a></td> </tr> <tr> <td colspan="2"><img height="5" alt="" src="http://www.ibm.com/i/c.gif" width="1" border="0" /> </td> </tr> <tr valign="top" align="left"> <td width="21"><a cmimpressionsent="1"><img height="10" alt="del.icio.us" src="http://del.icio.us/static/img/delicious.small.gif" width="10" border="0" /> </a></td> <td><a cmimpressionsent="1">发布?del.icio.us</a> </td> </tr> <tr> <td colspan="2"><img height="5" alt="" src="http://www.ibm.com/i/c.gif" width="1" border="0" /> </td> </tr> <tr valign="top" align="left"> <td width="21"><a href="javascript:location. cmimpressionsent="1"><img height="16" alt="Slashdot" src="http://images.slashdot.org/favicon.ico" width="16" border="0" /> </a></td> <td><a href="javascript:location. cmimpressionsent="1">提交?SlashdotQ?/a> </td> </tr> <tr> <td colspan="2"><img height="5" alt="" src="http://www.ibm.com/i/c.gif" width="1" border="0" /> </td> </tr> </tbody> </table> </p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p><a name="N10354"><span id="raxiics" class="smalltitle">致谢</span></a></p> <p>Mylyn 能获得成功ƈ且走到现在,很大E度上得益于大量的用户参与,?她们报告 bug qA(ch)献补丁。正是这U协作让 Mylar 从一个研I原型发展成Z(jin) Eclipse 用户在日常工作中所依赖的一个重要部分?/p> <p>Athen O'Shea、Robert Elves、Gail Murphy ?Ducky Sherwood Ҏ(gu)文提供了(jin)有帮助的回馈?/p> <img src ="http://m.tkk7.com/conans/aggbug/209879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/conans/" target="_blank">CONAN</a> 2008-06-22 18:52 <a href="http://m.tkk7.com/conans/articles/209879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mylyn 2.0Q第 1 部分: 集成的Q务管?/title><link>http://m.tkk7.com/conans/articles/209878.html</link><dc:creator>CONAN</dc:creator><author>CONAN</author><pubDate>Sun, 22 Jun 2008 10:51:00 GMT</pubDate><guid>http://m.tkk7.com/conans/articles/209878.html</guid><description><![CDATA[<blockquote>现在Q在 2.0 版中QMylynQ以前称?MylarQ通过Q务无~集成到 Eclipse 中ƈ在工作时自动理d上下文,提高?jin)效率。Mylyn 目ȝ Mik Kersten 更新?jin)他撰写的分两部分?Mylyn 使用指南Q以便包括根?Mylyn 1.0 的大量用户反馈而作出的改进。第 1 部分介绍 Mylyn 的Q务管理功能和它与 Bugzilla、Trac ?JIRA {储存库的集成。在 <a cmimpressionsent="1">W?2 部分</a>Q?zhn)?jin)解上下文理如何化多d执行Q以?qing)如何减信息超载?/blockquote><!--start RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--end RESERVED FOR FUTURE USE INCLUDE FILES--> <p>虽然软gpȝ、框架和工具可以无限制地发展Q但开发h员实际处理信息的能力h一个上限。大多数集成开发环境(IDEQ尝试用结构化视图、编辑器和高U搜索功能来解决q个限制。这些机制虽然可以大型pȝ的导航变得更Ҏ(gu)Q但是它们常怸以帮助(zhn)管理完成典型编EQ务所必须处理的大量信息。因此,l构化视图越来越不堪负荷 —?例如Q即使在D一个小型的企业应用E序ӞEclipse Package Explorer 也常怼(x)昄数千个源文g —?(zhn)要费大量的时间来滚动、导航和跟踪q些信息?/p> <p>有趣的是Q在大多数情况下Q不需要查看系l的整个层次l构或者某个特定方法的每个引用可以完成编EQ务。例如,对于要修复的M bug 或者要d的Q何特性,(zhn)只对系l的某一部分感兴。Mylyn 是一U交互技术,通过?em>集成的Q务管?/em> ?em>自动上下文管?/em> q两个功能添加到 Eclipse 中,可以H出昄(zhn)感兴趣的系l内宏VQ务管理将 task/bug/defect/ticket/story/issue 跟踪器集成到 Eclipse 中,q提供高U的d~辑和Q务调度功能。上下文理监视(zhn)与 Eclipse 的交互,自动识别与当前Q务相关的信息Qƈ聚焦l构化视囑֒~辑器,使其只显C相关信息。这两个功能一L(fng)成了(jin) Mylyn ?Task-FocusedQ以dZ?j)?j)UIQ多Q务处理变得更Ҏ(gu)Qƈ且极大减了(jin)信息蝲。(至于实际研究l果Q请参阅 <a cmimpressionsent="1">参考资?/a> 节中研I论?“Using Task Context to Improve Programmer Productivity” 的链接。)(j)</p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N1006A"><strong>加速思?/strong></a><br /> <p>myelinQ髓Q是体内自然产生的一U物质,它通过使神l元更高效地导电(sh)而加快我们的思考。Mylyn q个名称源于 myelinQ因为很多用户声U?Mylyn 大大提高?jin)工作效率,能够以思考的速度~写代码。以前,q个目被称?MylarQ与一U朔料薄膜的名称相同?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>q个׃部分l成的文章是一?Mylyn 使用指南。本文的某些内容Q尤其指x~程而不是Q务管理的内容Q假设?zhn)熟(zhn)?Eclipse IDE。第 1 部分?Mylyn 入门Qƈ介绍?jin)它在Q务管理方面的功能?a cmimpressionsent="1">W?2 部分</a> 介绍 Mylyn 的上下文理功能Qƈ讨论它的 Task-Focused UI 对编E和开发方法的影响。ؓ(f)方便赯Q将同时发表q两部分内容?/p> <p>W?1 部分q不适用于编E活动,它适用于在M Eclipse 发行版或者集?Mylyn 的独立应用程序中使用 Mylyn?a cmimpressionsent="1">W?2 部分</a> 主要讨论 Java™ ~程Q但是也讨论?jin)适用于所有基?Eclipse 的工L(fng)一些特性。在本文的例子中Q我使用 Bugzilla 作ؓ(f)d储存库,但是q里的概念和 UI 同样适用?<a cmimpressionsent="1">Mylyn 支持的其它Q务跟t器</a>。即使?zhn)打算通过不同的连接器使用 MylynQ徏议?zhn)q是看看使用 Bugzilla Connector 的步骤,以便熟?zhn)关键?gu)?/p> <p><a name="N10087"><span id="aygkzlq" class="atitle">Mylyn ?/span></a></p> <p>Mylyn 通过d跟踪q样的复杂机制扩展了(jin) Eclipse SDKQ从 <a cmimpressionsent="1">参考资?/a> 节查看受支持的版本Q?em>dQtaskQ?/em>是?zhn)希望回调或与他h׃n的Q何工作单元,例如一个用h告的 bugQ或者关于一个特性改q的说明。Mylyn 使?zhn)可以在工作区本地存储dQ或者处理一个或多个d储存库中的Q务。(<em>d储存?/em> 指诸?Bugzilla、Trac ?JIRA 之类的问题跟t器Q。要q接C个特定的d储存库,q必d装用于该储存库的 <em>Mylyn q接?/em>?/p> <p>集成d之后QMylyn 监视这些Q务上的活动,以识别与当前d相关的信息。此ӞMylyn 创徏一?em>d上下?/em> —?与Q务相关的所有工件的集合。这可以包括览q的文档、编辑过的方法和引用q的 API。Mylyn 使用d上下文 UI 聚焦感兴的信息、隐藏不感兴的信息、自动发现相关的信息。具备了(jin)完成d所需的信息,可以减执行搜索、导航和滚动操作的时_(d)从而提高工作效率。通过H出d上下文,Mylyn q有助于多Q务处理、计划、重用过ȝ工作以及(qing)׃n专家l验?/p> <p>使用 Mylyn 一D|间之后,(zhn)的工作方式?x)发生微妙但是重要的变化。一旦习(fn)惯了(jin)以Q务ؓ(f)中心(j)的工作方式,(zhn)很可能?x)发现工作效率有了(jin)极大的提高。?zhn)的工作变得井井有条,可以l筹理数十个协作Q务ƈ跟踪q程Q这些事情都变得非常Ҏ(gu)?/p> <p>?1 中的~号区域昄?Mylyn 的一些Q务管理和上下文管理特性:(x)</p> <ol> <li>含活动Q务的d列表QTask ListQ和当天计划好的 Bugzilla 报告 <li>׃Q务上下文理的更攚w <li>hȝ支持的富d~辑? <li>Eclipse Package Explorer 上以dZ?j)的模?</li> </ol> <br /> <a name="fig1"><strong>?1. Mylyn ?Task-Focused UI </strong></a><br /> <img height="420" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-overview.jpg" width="572" /> <br /> <p>单击 <a cmimpressionsent="1">q里</a> 查看全图?/p> <p>接下来的节讲解 Mylyn 的安装和配置Qƈ介绍它的关键Ҏ(gu)。对 Mylyn d理功能有了(jin)大致?jin)解后,?zhn)将更深入地?jin)解它对日常工作程的?jing)响?</p> <br /> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br /> <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br /> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br /> </td> <td valign="top" align="right"><a class="fbox" cmimpressionsent="1"><strong>回页?/strong></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p><a name="repositories"><span id="pncrkhm" class="atitle">d储存库连接器</span></a></p> <p>在本文中Q我使用 Mylyn ?Bugzilla Connector 来展CZ用Q务储存库集成的关键概c(din)对于其它受支持的Q务储存库Q这些概忉|相同的,只是集成U别和连接器的成熟度有所不同。与 Mylyn 捆绑?Bugzilla ?Trac q接器非常成熟,q且被视作参考实现。Mylyn Extensions 面Q参?<a cmimpressionsent="1">参考资?/a> 节Q列Z(jin)用于其它问题跟踪器和目理工具的连接器Q例?CollabNet、Rally、Mantis ?XPlannerQ?/p> <p>完全集成的连接器提供以下Ҏ(gu):(x)</p> <ul> <li><strong>查询QQueriesQ?/strong>Q查询是用于各lQ务取回到 Mylyn ?Task List 中的一U机制。查询编辑和(g)索功能特定于q接器,它们可以提供一个基?Eclipse 的查询设计器Q或者从服务器中的一个帐h索查询,或者同时提供这两种功能?<br /> <br /> <li><strong>富编辑(Rich editingQ?/strong>Q可以用一个集成的~辑器编辑Q务和查询。该功能提供d和其它结构化元素的超链接Q以?Eclipse 和桌面集成,例如拖放功能。提供富~辑的连接器仍然可以提供?Eclipse 的嵌入式览器中打开d和查询的功能?<br /> <br /> <li><strong>附gQAttachmentsQ?/strong>Q可以将文g附加到储存库中,或者从储存库中(g)索文件。该Ҏ(gu)允总操作pȝ?Eclipse 工作区附加文Ӟq且支持上下文共享等功能Q请参阅 <a cmimpressionsent="1">W?2 部分</a>Q?br /> <br /> <li><strong>ȝQOfflineQ支?/strong>Q可以在断开q接的情况下工作Q直接访问文件和查询Q而不必等C服务器徏立连接。该功能q提供更攚w知Q可以?Task List 作ؓ(f)d收g,而不用依赖于?sh)子邮g客户端?</li> </ul> <p>Z(jin)让?zhn)?Mylyn 获得完整的集成,q停止对外部或基?Web ?UI 的依赖,q接器必L持这里列出的所有四个功能。但是,只要 Eclipse 具备<em>_</em> 可用于处理Q务的功能Q则仍然可以?Mylyn ?Task-Focused UI 中获益。如果连接器的Q务储存库不可用,(zhn)仍然可以:(x)</p> <ul> <li>使用 Mylyn ?<a cmimpressionsent="1">本地d</a> 的支持。如果不受支持的储存库有一个基?Web ?UIQ那么可以从览器中?URL 拖放?Mylyn 中,从而创ZQ务?br /> <br /> <li>使用 Generic Web Repository ConnectorQ它为很多基?Web 的储存库提供基本查询支持QGoogle Code Hosting (code.google.com)、IssueZilla (java.net、dev2dev、tigris.org)、GForge (objectweb.org)、SourceForge (sf.net)、JIRA、Trac、phpBB ?vBulletin。请参阅 <a cmimpressionsent="1">参考资?/a> 节Q了(jin)解更多信息?br /> <br /> <li>hd储存库提供商创徏一个用?Mylyn 的连接器。还可以考虑?Mylyn bug |页为?zhn)的连接器投票Q参?<a cmimpressionsent="1">参考资?/a> 节Q?br /> <br /> <li>创徏自己的连接器Q请参阅 <a cmimpressionsent="1">参考资?/a> 节Q提供了(jin)?Integrator Reference 的链接)(j)?</li> </ul> <br /> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br /> <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br /> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br /> </td> <td valign="top" align="right"><a class="fbox" cmimpressionsent="1"><strong>回页?/strong></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p><a name="N10141"><span id="eqnvopb" class="atitle">安装和设|?/span></a></p> <p>Mylyn 现在被包括在大多?Eclipse 发行版中Q所以获得它的最单方法是?Eclipse Downloads 面下蝲一个包?Mylyn 的包Q见 <a cmimpressionsent="1">参考资?/a> 节Q。但是,对于更新x?Mylyn 版本Q或者将 Mylyn 安装到没有捆l?Mylyn ?Eclipse 版本中,下面的说明仍然会(x)提供帮助?/p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N10152"><strong>技巧:(x)Mylyn 要求 Java 5 或更高版?/strong></a><br /> <p>Mylyn 构徏?Java 5 的基上。如果试囄 JRE 1.4 或更早的版本q行它,那么它不能工作,q且?x)在启动时报错。可以通过 <strong>Help > About Eclipse SDK > Configuration Details</strong> (g)?Eclipse 使用哪个版本?JRE。有兛_装方面的故障排除Q请参?Mylyn FAQ Q参?<a cmimpressionsent="1">参考资?/a> 节Q?</p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>要安装适合(zhn)用的 Eclipse 版本?MylynQ可以?Eclipse Update Manager: <strong>Help > Software Updates > Find and install > Search for new features to install</strong>?当对 Eclipse 3.2 更新Ӟ最好用这U机Ӟ而不?<strong>Search for updates</strong>Q因为后者不?x)执行正的依赖性检查。在 Eclipse 3.3 上,q两U方法都可行。想要了(jin)解提?Update Manager 的最?Mylyn 更新站点Q请参?Mylyn 的下载页面(参阅 <a cmimpressionsent="1">参考资?/a> 节Q?/p> <p>Mylyn 的一个关键设计目标是?Eclipse 已有?UI 工具无缝集成。另一个目标是要求用户只安装和使用需要的Ҏ(gu)。图 2 昄?jin)用于选择要安装的Ҏ(gu)的 UI。例如,如果(zhn)的d?bug 归类QtriagingQ而不是开发,那么可以安装 Mylyn ?Task ListQ而不必安?Task-Focused UIQƈ且可以独立地选择用于问题跟踪器的q接器。Y件开发h员很可能要同时安装这两个Ҏ(gu)?/p> <br /> <a name="fig2"><strong>?2. 选择 Mylyn Ҏ(gu)和储存库连接器 </strong></a><br /> <img height="164" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-install.jpg" width="267" /> <br /> <p>当从更新站点选择要安装的Ҏ(gu)时Q可以选择一个或多个要用的d储存库。注意,正如 Mylyn Downloads 面提示的,(zhn)可能需要添加额外的更新站点Q以获得所需的连接器。当安装推荐?Task-Focused UI Ҏ(gu)时Q还应该选择所有可安装到当?Eclipse 版本的桥接器。(关于桥接器的详细信息Q请参阅 <a cmimpressionsent="1">W?2 部分</a>Q。重新启?Eclipse 3.3 或更高版本之后,可以看到?3 所C的Ƣ迎屏幕。如果当前用的?Eclipse 3.2Q那么可以从 Help 菜单手动打开q个Ƣ迎屏幕?/p> <br /> <a name="fig3"><strong>?3. Ƣ迎屏幕</strong></a><br /> <img height="303" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-welcome.jpg" width="569" /> <br /> <br /> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br /> <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br /> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br /> </td> <td valign="top" align="right"><a class="fbox" cmimpressionsent="1"><strong>回页?/strong></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p><a name="N10198"><span id="dtfygde" class="atitle">d和查?/span></a></p> <p>Mylyn 提供?jin)用两U类型Q务的支持Q?/p> <ul> <li><strong>本地d</strong>存储?Eclipse 工作区,提供基本的Q务管理特性,例如调度。本CQ务是U有的,q只Ҏ(gu)可见?br /> <br /> <li><strong>储存库Q?/strong>存储在与一个外部应用程序或服务器对应的一个Q务储存库中。储存库d常常在多Z间共享,但是仍然提供所有的本地d功能Q例如个度和注解?</li> </ul> <p>本节展示如何创徏和编辑本CQ务,q考察用于使用储存库Q务的可用Ҏ(gu)。这里谈到的Ҏ(gu)的可用性取决于q接器的 <a cmimpressionsent="1">集成U别</a>Q所以只需参考那些适用的特性。无接器集成U别是多,都可以?<a cmimpressionsent="1">d理和个?/a> 中讨论的 Mylyn 的所有Q务管理功能?/p> <p><a name="startedwithlocal"><span id="xckhtns" class="smalltitle">本地d初解</span></a></p> <p>安装 Mylyn 之后Q遵循以下步骤:(x)</p> <ol> <li>?Task List 视图上单?<strong>New Task</strong> 工具栏按钮,创徏一个新d? <li>选择 <strong>Local Tasks</strong> 储存库? <li>输入一个Q务概要? <li>单击 Eclipse 工具栏上?<strong>Save</strong> 或按 Ctrl+SQ保存更新后的描q?</li> </ol> <p>创徏本地d的快h式是 Insert 键,或者也可以?Web 览器中文本或 URL 拖放?Task List 中。新d的描q将q?Web 面的标题自动填充。(?Firefox 中,只需常规的拖动动作;而在 Internet Explorer 中,在拖动的同时q需按下 Ctrl 键。)(j)?Task List 中双MQ务可以打开d~辑器(如图 4 所C)(j)Q在该编辑器中可以创建注解、粘贴相兌链接或者调度特定日期的d。默认情况下Q新创徏的Q务是在创Z日调度的?/p> <br /> <a name="fig4"><strong>?4. ~辑本地d</strong></a><br /> <img height="411" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-editor.jpg" width="572" /> <br /> <p>创徏?jin)十几个或者更多的本地d之后Q?zhn)可能想通过创徏<em>cd</em> 来组l它们。如果创ZQ务时没有?Task List 中选择cdQ那么该d被放入到 Uncategorized 容器中。可以?Task List 中的 <strong>Move to</strong> 弹出菜单或者Q务编辑器或者通过拖放操作一个创建好的Q务{Ud另一个类别中?/p> <p>要将本地d标记为已完成Q可以用Q务的弹出菜单或者Q务编辑器?默认情况下,被标Cؓ(f)已完成的d?x)被qo(h)掉,但是也可以通过 Task List 的视图菜单(使用 Task List 视图工具栏右侧的倒三角Ş打开Q选择不过滤它们。ؓ(f)?jin)避免凌乱,不要昄那些不显CZQ何Q务的cdQ例如,所包含的Q务全部完成的cdQ。?Task List 端?<strong>Find:</strong> 框访问被qo(h)的Q务。最后,可以通过d~辑器ؓ(f)本地d讄优先U和计划信息?a cmimpressionsent="1">d理和个?/a> 节更深入地讨划?/p> <p>Z(jin)熟?zhn)?Mylyn 的图标模式,可以使用 Task List 视图菜单中的 <strong>Show UI Legend</strong> 动作Q见?5Q?我将在整个文章中引用该图标模式?/p> <br /> <a name="fig5"><strong>?5. Mylyn UI 图例</strong></a><br /> <img height="641" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-ui-legend.jpg" width="300" /> <br /> <p><a name="N1021B"><span id="dmqfgpu" class="smalltitle">dd储存?/span></a></p> <p>不同d储存库在功能和Q务管理的指代斚w可能有较大差别。Mylyn 的Q务管理功能提供了(jin)一U统一的方式用多U储存库Q包括:(x)</p> <table cellspacing="0" cellpadding="0" width="32%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N10227"><strong>技巧:(x)d储存库后认讄</strong></a><br /> <p>Mylyn 的最常见问题和Q务储存库的连接有兟뀂?<strong>Validate Settings</strong> 按钮来验证?zhn)输入的凭证是正确的。如果需要Q何其它设|,例如|络代理Q可以用提供的其它区域中的其中一个再ơ验证。通常Q如果验证失败,d储存库连接器应该?x)提供一条有用的消息。如果没有提供消息,则可以参考连接器的文档或?Mylyn FAQQ参?<a cmimpressionsent="1">参考资?/a> 节Q,对连接问题进行故障排除。还应注意,有些q接器要求在服务器上q行Ҏ(gu)的设|?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <ul> <li><strong>本地d</strong>Q用于用存储在 Eclipse 工作区的单Q务的一U特D的储存库?br /> <br /> <li><strong>׃nd</strong>Q如果?zhn)的团队用共享Q务储存库Q例?Bugzilla 服务器,那么可以使用q种储存库来与其他h协作完成d?<br /> <br /> <li><strong>目理d</strong>Q有些连接器Q例?XPlannerQ提供用于将dl织到项目阶D和用户事g中的d理功能?br /> <br /> <li><strong>bug 和增强报?/strong>Q这是一U特D的dQ通常在品用户与支持团队之间׃n。Mylyn 提供集成?bug 报告Q以帮助跟踪与其它Q务一起归档的 bug 报告?</li> </ul> <p>要创Z个Q务储存库Q可以打开 Task Repositories 视图Q?strong>Window > Show View > Mylyn > Task Repositories</strong>Q,或者用一个包含它的透视图,例如 Team Synchronizing 透视图。打开后,使用视图的工hd一个新的储存库。然后,可以输入储存库凭证和M其它q接l节Q或者从可用模板中选择一个模ѝ图 6 中的 bugs.eclipse.org 储存库是在安?Mylyn 时自动创建的Q这是ؓ(f)?jin)便于报?Mylyn ?Eclipse ?bug 和特性请求?/p> <br /> <a name="fig6"><strong>?6. d Eclipse.org Bugzilla 储存?/strong></a><br /> <img height="561" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-repository.jpg" width="572" /> <br /> <p><a name="N10273"><span id="oimunze" class="smalltitle">查询储存?/span></a></p> <p>成功地添加了(jin)d储存库之后,可以通过 Task List 的弹单中?<strong>New Query</strong> 动作创徏查询来访问那个储存库上的d。例如,可以~写一个查询来讉K指定到我的电(sh)子邮地址的所?Bugzilla 报告Q如?7 所C:(x) </p> <br /> <a name="fig7"><strong>?7. 创徏新的 Bugzilla 查询</strong></a><br /> <img height="685" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-query.jpg" width="572" /> <br /> <table cellspacing="0" cellpadding="0" width="56%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="query_configuration"><strong>查询讄 </strong></a><br /> <p>Z(jin)支持各种不同的组l样式,Mylyn ?Task List 可以灉|地设|和使用cd和查询。例如,如果(zhn)的团队对于理重复d和用里E碑QmilestoneQ标识每?Bugzilla 报告很}慎,那么可以讄与这些里E碑对应的查询,q用这些查询来跟踪目的进度。但是,Ҏ(gu)我与 Mylyn 团队和其?Mylyn 采用者的合作l验Q我Q如果与其他Z间有很多合作Q则Ҏ(gu)人员范围界设|查询,如果主要是完成分配给自己的Q务,则根据组件或产品范围讄查询。然后,可以使用 Task List ?<strong>Go Into</strong> 动作Q位于所有Q务容器的弹出菜单中)(j)聚焦被分配的d或与一个特定组件相关的d。可以?Task Search (Ctrl+H) 功能随时更新里程的q度。具体而言Q徏议执行如下操作:(x) </p> <ul> <li>为所有分配给(zhn)的d讄一个查询(例如 “All Mine”Q。如果有不同的品或lg范围Q则可以这个查询拆分成多个查询。通常Q一个查询应该就_?jin),它可以帮助(zhn)更容易地定下一步执行什么,因ؓ(f) Task List ?x)按照处理顺序排列Q务?<br /> <br /> <li>如果与其他h密切协作Q那么可以ؓ(f)他们中的每个|一个查询。然后,Mylyn 的传入(incomingQ通知可以帮助(zhn)对此进行响应,q排列与q些个体q行讨论的优先次序?<br /> <br /> <li>为已l报告、注释或者用 CC 处理q的Q例?“Products - Eclipse” ?“Products - Mozilla”Q所?bug 讄另一个查询。对于感兴趣的每个Q务储存库都执行这个操作,以确保可以收到?zhn)感兴的每个报告的更攚w知。通过排除qd讄的查询中所包括的组Ӟ可以避免查询之间的重复Q务?<br /> <br /> <li>如果?bug q行归类Q那么可以ؓ(f) bug 收g帐戯|一个单独的查询Q以便监视即来临的报告?</li> </ul> <p>虽然讄查询旉常只包括打开?未决?未完成的dQ但是我强烈包括所有Q务。默认情况下 Mylyn ?x)过滤完成的dQƈ且ɘq些d很容易通过 Task List 端?<strong>Find:</strong> 框来(g)索。如果查询只包括未完成的dQ那么一旦这些Q务完成之后,׃再会(x)在查询下昄。注意,我的用于所?Mylyn d的查询目前返?1,420 个元素,其中大多数已l完成。通常Q这样大的结果集不会(x)造成问题?</p> <p>查询中不昄的已l完成的d?Archive 中仍然会(x)昄Q那里包含所有?zhn)工作q的d?/p> <p>度信息(例如里程)(j)讄查询?x)很有用Q但是这也会(x)造成 Task List 中充塞着彼此重复的查询。考虑使用 Search 功能来查询像目标里程之cȝ内容。通常Q查询对于设|?Task ListQ之尽可能明地昄正在处理的和与h协作的Q务很有用Q而搜索可以快速给?“在这个里E碑之后应执行什么操?#8221; 之类问题的答案?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>讄参数q单?<strong>Finish</strong> 之后QTask List 中的查询容器被相应的d填充。在查询执行同步ӞMylyn 在后台检索Q务的信息。下载完d信息之后Q可以立x开dQ因Z需要往q服务器来检索Q务的信息。要更改查询的参敎ͼ可以重新打开它(通过?Task List 中双?yn)L询)(j)q编辑所选择的倹{虽然对于不同的q接器查询参数的讄不尽相同Q但是查询参数设|都是用于反映连接器?Web UI 所提供的功能。有兛_建查询的详细信息Q请参阅q接器文档或服务?Web UI 文档?/p> <p>默认情况下,查询每隔 20 分钟自动q行同步Qƈ昄与查询参数匹配的CQ务。(可以通过 <strong>Preferences > Mylyn > Task List</strong> 更改q个旉。)(j)当与 Web 断开q接Ӟ不需要 Mylyn 处于ȝ模式。但是,如果惛_闭同?—?例如Q假设?zhn)要长旉ȝ工作Q或者直接根据所使用的带宽付?—?那么可以q么做,Ҏ(gu)是在 Task List 视图菜单中切?<strong>Synchronize Automatically</strong> 讄。然后,可以通过工具栏上的按钮手动地同步所有Q务和查询Q或者通过弹出菜单或快捷键 F5 单独同步每个d或查询。必要时Q可以从弹出菜单中将一个Q务储存库|于ȝ模式。当储存库不可用Q需要长旉ȝ工作Ӟq样做很有用?/p> <p>对于可以通过 Web 览器访问的q接器,Mylyn 集成?jin)用户已熟知?Web UIQ如?Mylyn 的富~辑功能不支持某些操作,(zhn)可能需要依赖于q个 Web UI。可以右键单MQ何Q务或查询Q以便用 Web 览器打开它(Eclipse 览器设|位?<strong>Window > Preferences > General > Web Browser</strong> 中)(j)Q具有关?URL 的所有储存库d都可以通过 Task Editor 的工h或者Q务的弹出菜单上的 Open with Browser 动作打开。还可以用浏览器打开 Bugzilla 查询Q例如,假设(zhn)想它_帖C电(sh)子邮件中Q以便?Bugzilla Web UI 对它q行改进Q。然后,可以按照 New Query 向导的提C粘帖它Q从而用更新后?URL ?Task List 中创Z个新的查询?/p> <p><a name="N102D9"><span id="przlpxu" class="smalltitle">搜烦(ch)d</span></a></p> <p>搜烦(ch)dcM于创建查询,但是它不结果存储在 Task List 中。?Ctrl+H ?Search 菜单Q?strong>Search > Task Search</strong>Q,选择感兴的储存库,输入搜烦(ch)条gQ然后单?<strong>Search</strong>。搜索视N之打开Q在该视图中可以打开与搜索匹配的dQ如?8 所C。要改进搜烦(ch)Q只需再次打开 Search 对话框,以恢复之前的搜烦(ch)条g。可以在 Search 视图中将搜烦(ch)l果从弹单{Ud一个查询中?</p> <br /> <a name="fig8"><strong>?8. d搜烦(ch)和结?/strong></a><br /> <img height="267" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-search.jpg" width="564" /> <br /> <p><a name="N102F7"><span id="uhpxqvp" class="smalltitle">创徏储存库Q?/span></a></p> <p>要创建新的储存库dQ可以在 Task List 工具栏或 <strong>File > New</strong> 菜单中选择相应的动作,如果有多个储存库Q那么要选择一个储存库。然后,q接器会(x)要求输入d的其它属性,例如它的 Bugzilla lg。然后会(x)打开一个新的编辑器Q在其中可以填入d的属性和描述。有些属性会(x)自动选好Q例如,如果使用 Bugzilla q接器,则会(x)自动选择操作pȝ?</p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N10306"><strong>技巧:(x)右键单击一个查询节?/strong></a><br /> <p>作ؓ(f)一U快h式,可以在一个查询节点上单击右键Q这样可以自动选择与查询对应的储存库和产品。通常Q当调用需要输入的功能ӞMylyn ?x)尝试用(zhn)的选择来预先选定相关输入?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>(zhn)可能要创徏的另一UQ务是有关 Mylyn 或用的另一个基?Eclipse 的工L(fng) bug 报告。通过自动d bugs.eclipse.org 储存库,以及(qing)d可以?Eclipse ?Error Log 视图?Help 菜单中访问的用于自动报告 bug 的动作,制作 bug 报告很容易。如果要查看惌q行报告的错误事Ӟ只需右键单击它,选择 <strong>Report as Bug</strong>。然后会(x)打开 New Repository Task ~辑器,其中包括所有相关信息,例如栈跟t?/p> <p>׃q种通过一ơ单ȝ?bug 报告的方式可能导致大量重复的 bug 归档文gQ因?Mylyn q提供自动的重复(g)?strong>Search for Duplicates</strong> 按钮使用报告?Description 中的自动插入式或手动_帖式栈跟踪来查询相应的储存库,以发现潜在的重复内容。重复检的l果昄?Search 视图中,如图 9 所C。如果发现匹配,可以打开它,作出注释Q而不是创建新?bug 报告?</p> <br /> <a name="fig9"><strong>?9. 集成?bug 报告和重复检?/strong></a><br /> <img height="520" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-duplicate.jpg" width="505" /> <br /> <p><a name="N1032B"><span id="rltbjdt" class="smalltitle">~辑和同?/span></a></p> <p>在打开一?Bugzilla dӞ(zhn)将注意到在~辑器上有一?Bugzilla 和一?Planning 选项卡。储存库q接器提供一个富~辑器,例如q个 Bugzilla 选项卡,用于~辑在储存库上共享的d信息。而且QPlanning 选项卡提供用本CQ务创Z人注解的相同功能?/p> <p>当查?bug 上的注释Ӟ可以使用 Outline 视图在注释之间导航,但是未读注释的自动折叠意味着可以?Task Editor 中进行大多数D操作。对其它d和其它结构化元素Q例?Java 栈跟t元素)(j)的引用被讄链接Q参见图 10 ?<a cmimpressionsent="1">?1</a>Q。超链接的语法特定于q接器。通常Q在d~辑器左上角出现的引用可用于?bug q行链接。连接器?Web UI 支持的其它语法也受支持。始l支?<em>task <key></em> 语法?/p> <br /> <a name="fig10"><strong>?10. 储存库Q务编辑器和内容辅?/strong></a><br /> <img height="514" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-editor-repository.jpg" width="559" /> <br /> <p>如果q接器支持离U编辑,?Mylyn l护打开的Q何Q务的一个缓存副本,q且每当相应的查询或dq行同步Ӟ对这个副本进行更新。如果作ZQ何更改,例如讄一个属性或者编刉分注释,那么可以通过按下 Ctrl+S 在本C存更攏V这导致Q务上出现一?<em>outgoing</em> 指示W。当准备好提交Q务时Q单ȝ辑器底端?<strong>Submit</strong>?/p> <p>如果一个Q务之前已l被打开Q那么再ơ打开它时检索离U副本,q开始在后台对Q务执行同步。这样可以确保不需要等待往q服务器可以开始读取和处理d。如果发现新的更改,或者当~辑器打开时他人更改了(jin)dQ那么编辑器的标题栏?x)显C出来,q提C刷新编辑器?/p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N1035C"><strong>技巧:(x)整理?sh)子邮箱收g?/strong></a><br /> <p>׃使用?Mylyn 的后台同步功能,不需要依赖电(sh)子邮仉知p知道 Bugzilla 中最新的 bug 报告更改。只需讄可捕捉?zhn)感兴的所有Q务(例如复制的每个报告)(j)的查询,可以收到简明的q入式箭头Ş式的通知Q这U通知不会(x)使?zhn)的收件箱蝲。通过选择 <strong>Window > Preferences > Mylyn > Tasks</strong> 讄同步调度。通过右键单击?wi)中的节点ƈ选择 <strong>Synchronize</strong>Q可以手动地同步查询和Q务?</p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>如果有其他h更改?jin)储存库中的dQ例如添加一条新的注释,那么在屏q的右下角会(x)弹出一个窗口显C更改,而Q务则使用<em>q入?/em> 头标记昄。如果打开dQ则被更改的部分?x)高亮显C,被添加的新的注释自动展开。如果本地副本和服务器上的副本都被更改,那么可以看到一个红色的冲突指示W,q提C军_H。如果看到冲H,那么应该单击d~辑器的 <strong>Synchronize</strong> 按钮Qƈ且提交?zhn)的更改,或者通过弹出菜单?<strong>Mark > Clear Outgoing</strong> 攑ּ(zhn)的更改Q以保d被同步?</p> <p><a name="N10378"><span id="geqyvij" class="smalltitle">附g</span></a></p> <p>可以用Q务编辑器?Attachments 区的 <strong>Add...</strong> 按钮附件添加到储存库中。还可以从工作区或窗口管理器文件或文本直接拖到~辑器的 Attachments 区。添加附件时?x)出C个向|通过该向导可以选择Ҏ(gu)剪切板内宏V计机中的一个文件还是从 Eclipse 工作Z创徏附g。通过 Attachments 表,可以?Web 览器或~辑器打开附gQƈ通过上下文菜单执行特定的动作Q例如保存或复制到剪切板?/p> <br /> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br /> <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br /> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br /> </td> <td valign="top" align="right"><a class="fbox" cmimpressionsent="1"><strong>回页?/strong></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p><a name="planning"><span id="xwifcht" class="atitle">d理和个?/span></a></p> <p>现在Q我讨论如何 Mylyn 成ؓ(f)(zhn)的一个单独的d列表和收件箱Q以理工作周内所有相关的d。对于很多开发h员,要在一个给定的工作周内跟踪和调度的d的范围包括:(x)</p> <ul> <li>为?zhn)正在开发的产品解决产品~陷q分析特? <li>由?zhn)的同事完成的dQ这些同事包括?zhn)的搭档、上司或属下 <li>针对(zhn)所使用的框架、API 和Y件的 bug 报告 <li>个h待办事项和提?</li> </ul> <p>所有Q务集成到一个视图中Q可以它们更易于管理,因ؓ(f)只需查看一个位|就知道接下来该做什么。ؓ(f)?jin)进一步简化Q务管理,Mylyn 隐式包含?jin)一些公认的d理最?jng)_践,例如调度和gqQ务,q且q包括了(jin) XP 式开发的x性和适应性。Mylyn 的Q务管理工具(zhn)可以轻村֜适应一周内的Q务变化需求,而不?x)丢失对长期优先U的跟踪。除?jin)将工作周的控制权交到(zhn)手上之外QMylyn 通过化用共享的储存库属性(例如里程和优先U)(j)Q在 Eclipse 中执行所有操作,从而帮助?zhn)更好地集成团队实c(din)?</p> <p><a name="N103A0"><span id="qtfnrsp" class="smalltitle">预定日期与到期日?/span></a></p> <p>Mylyn 提供两种用于调度的日期:(x)<em>预定日期Qscheduled dateQ?/em> ?em>到期日期Qdue dateQ?/em>。((zhn)可能已l注意到QQ务编辑器中显CZ(jin)q两U日期)(j)。预定日期可以帮助管理和优先排列自己的工作周Q而到期日期则对应于最后期限之cȝ固定事g?/p> <p>d的预定日期是Ҏ(gu)个h日程安排的可变日期,可以Ҏ(gu)优先U的变化而推q。它定义(zhn)计划开始处理Q务的旉。当d到达预定日期Ӟd变成U色Q以指示(zhn)应该开始处理它或者考虑推迟它的起始日期。定在今天执行的d?x)变成蓝色而不是红Ԍq且在工作日的最后进行安排,避免重新安排整个工作日的d?/p> <p>相反QQ务的到期日期是固定的日期QQ务必d成的日期。这个日期常怸外部的约束(例如最后期限)(j)相关。如果用共享的d储存库或者日历工P到期日期?x)进行同步,以便使团队的其它成员可见。例如,如果 Bugzilla 的时间跟t功能被启用Q那么可以通过d~辑器的 Attributes Z?Time Tracking |?Bugzilla d的到期日期,团队中的其他成员可以看到q个日期Q还可以~辑它。到期日期的临近是通过d图标上的一个小钟指C的Q这个小钟在到期日期之前Ԍ在到期日期之后ؓ(f)U色?/p> <p><a name="N103B5"><span id="ozwtqrl" class="smalltitle">聚焦工作周Q?/span></a></p> <p>׃ Mylyn 使得创徏和共享Q务变得如此容易,g(zhn)一旦开始用它QTask List 中很快就?x)装满数十个甚至数千个Q务。对?Mylyn 的早期用P包括我在内,实?x)发生这L(fng)事情。也许是因ؓ(f)我是W一批用P目前我的 Task List 包含过 5,000 个Q务,其中有超q?1,000 个Q务尚未完成。乍一看来Q这g?Mylyn 减少而不是增加信息超载的目标有冲H。ؓ(f)?jin)解册个问题,Mylyn 提供?jin)改q的功能来调度和推迟dQ用这些信息让 Task List 只显CZ(zhn)的工作周有关的d。新创徏的Q务定在创建日调度Qƈ且可以通过d~辑器的 Planning 区或上下文菜单快速地Q务推q到靠后的一个时间或日期?/p> <p>当Q务到N定日期之后,d和它的容器(例如一个查询)(j)变成U色Q桌面上昄一个弹出窗口作为提醒。(和其?Mylyn 颜色和字体设|一P可以?<strong>Window > Preferences > General > Appearance > Colors and Fonts</strong> Q务设|ؓ(f)高亮昄Q。当d被推q到来的日期执行时Q?strong>Window > Mylyn > Tasks > Scheduling</strong> 中设|的工作日v始时间决定Q务被调度的时间。通过更改工作日的l束旉Q可以确定被定ؓ(f)那天调度的Q务在什么时间到期?/p> <p>Mylyn d理模型的关键是Z兴趣的分cdqo(h)Q?zhn)可以通过 Task List 工具栏上?Focus on Workweek 动作启用该功能。聚焦模式导致只有与工作周相关的d才可以显C。这包括以下dQ?/p> <ul> <li>预定在本周执行或者超q预定日期的d <li>有新的更改和注释的储存库d </li> </ul> <p>如图 11 所C,d被着色和分类Q以帮助(zhn)快速确定下一步Q务:(x)</p> <ul> <li>逾期d为红ԌL昄在列表的剙? <li>调度为在今天执行的Q务以蓝色H出昄? <li>调度为在本周靠后旉执行的Q务ؓ(f)黑色? <li>今天完成的Q务ؓ(f)l色? <li>之前完成的Q务ؓ(f)灰色?</li> </ul> <br /> <a name="fig11"><strong>?11. 调度d</strong></a><br /> <img height="506" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-scheduling.jpg" width="560" /> <br /> <p><a name="N103F7"><span id="gcopinh" class="smalltitle">每天执行预定的Q?/span></a></p> <p>通过L地调度和推迟dQƈ视N制ؓ(f)昄l定工作周内预定的Q务,Mylyn 帮助(zhn)全盘考虑优先U。ؓ(f)?jin)突出工作日QMylyn 用蓝色高亮显C所有在当天调度的Q务。由于在聚焦模式下工作时不大可能看到滚动条,因?Task List 保持展开Q所以?zhn)L知道应该考虑对什么作出响应或者下一步执行什么?/p> <p>考虑使用 Mylyn 的聚焦功能管理工作周的示例流E:(x)</p> <ol> <li>在工作周的开始,d列表包含很多U色的Q务,q些d是之前定在本周执行或者推q到本周执行的?br /> <br /> <li>U色不是令h愉快的颜Ԍ所以?zhn)使用上下文菜单将每个d安排在今天或本周靠后某一天执行。当所有红色都消失之后Q定在今天执行的d变成?jin)蓝Ԍ定在本周靠后旉执行的Q务变成黑Ԍ(j)Q?zhn)可以查看q周的日E安排,认它符合实际,必要时推q或委托他h执行d?br /> <br /> <li>?Task List 被激zLQ可以将鼠标(zhn)停?Task List 端附近的绿色进度条上(如图 11 所C)(j)Q以(g)查是否ؓ(f)工作周安排了(jin)太多的Q务。如果有些Q务要比其它Q务花Ҏ(gu)长的旉Q那么可以打开d?Planning 区,调整预计旉Q这样可以相应地调整工作周进度条?br /> <br /> <li>在工作日的最后,所有已l完成的d变成?jin)o(h)人愉快的l色。然后,(zhn)可以检查剩下的蓝色或红色的dQ将它们推迟到明天或更靠后的日期?br /> <br /> <li>在第二天的开始,安排在这一天的所有Q务都Ԍ而所有逾期的Q务ؓ(f)U色。在安排工作日时Q?zhn)会(x)将某些d推迟到本周靠后的日期Q因此可见的蓝色d表示(zhn)可以当天完成的所有Q务。Q务完成后变ؓ(f)l色?br /> <br /> <li>在工作周l束Ӟ滚动条应该会(x)消失Q列表上的大多数d应该都变成绿艌Ӏ?</li> </ol> <p>׃d调度是Q务管理最重要的部分,Mylyn ?Task List 中提供了(jin) <strong>Scheduled</strong> 表示Q它Ҏ(gu)到期日期而不是类别和查询来组lQ务。在聚焦模式下,q种表示?x)显C一周每天必d成的所有Q务。这对于q整周的工作负载很有用。它的另一个优Ҏ(gu)当?zhn)使用׃nd时可以避免分?j),因?f)不会(x)昄有新注释但是未调度的d。要(g)查新到来的Q务,需要切换回 <strong>Categorized</strong> 表示Q重新确定优先次序,然后再重新审视时间表。当不在聚焦模式下,可以使用 scheduled 表示来^衡未来工作周的Q务负?—?例如Q通过鼠标?zhn)停?Next Week 容器上检查有多少d被推q?/p> <p><a name="N10435"><span id="lhlmjot" class="smalltitle">创徏工作?/span></a></p> <p>到目前ؓ(f)止,本文描述的所有功能都是将 Task List 当作一个统一的相关Q务的集合Q?zhn)可以灉|地调度这些Q务。此外,可以用查询来l织dQ还可以q一步嵌套子dQ前提是储存库连接器提供q种支持Q例?Bugzilla q接器就提供q种支持Q可以从 Task List 的视图菜单中启用该选项Q。但是,׃ Mylyn 2.0 ?em>工作集(working setsQ?/em>的支持,q可以对由完全不相关的Q务组成的集合q行处理。假设?zhn)在开发一个品和两个不同的开源项目。?zhn)可能x工作日的大多数时间花在最重要的品上Q但是还惌q其它项目。Mylyn 的工作集使?zhn)可以l织与一个特定品或目相关的查询和cdQƈ提供限定?Eclipse 工作Z昄的文件和其它资源的数量的功能?/p> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N10444"><strong>技巧:(x)昄所有元?/strong></a><br /> <p>可以从工作集切换器下拉列表中选择 <strong>Show All</strong> 来查看所有元素,好像没有设|Q何工作集一栗这对于定期获得 Task List 的整体概况非常有用?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>使用 Task List 端的切换条Q创建包括相x询、类别和工作源的工作集(参见?12Q。只?Eclipse 视图被设|ؓ(f)昄 <em>Window Working Set</em>Q默认设|)(j)Q切?Mylyn 工作集可D Task List ?Eclipse 都只昄属于工作集的d和项目。例如,如果Z个开源项目设|了(jin)一个工作集Qƈ用下拉列表启用该功能Q那?Eclipse Task List、Package Explorer ?Problems 视图都只昄与那个项目相关的内容。Task List Find 只显C工作集中的匚wV甚臛_以通过 Search (Ctrl+H) 只查扑ַ作集中的内容Q如果工作区较大的话Q这样做很有用。换句话_(d)整个 Eclipse 只显CZ(zhn)创建的工作集相关的东西。工作集可以减少工作区的凌ؕQƈ且可以避免用多个工作区。在 <a cmimpressionsent="1">W?2 部分</a> 中,(zhn)将看到 Mylyn 如何q一步利用这U聚焦思想Q将 Eclipse 中的可见内容~小到单个Q务?/p> <br /> <a name="fig12"><strong>?12. ~辑和切换工作集</strong></a><br /> <img height="607" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-working-sets.jpg" width="572" /> <br /> <p><a name="N1046A"><span id="awexbch" class="smalltitle">qo(h)、分cd搜烦(ch)</span></a></p> <p>除了(jin)一些自动化功能外,Mylyn q提供手动分cdqo(h)功能Q?/p> <ul> <li>通过视图菜单中的 <strong>Sort by</strong> ,Ҏ(gu) Priority 之类的属性分cR? <li>使用视图菜单中的 <strong>Filter Priority Lower Than</strong> ,Ҏ(gu)优先U进行过滤? <li>通过视图菜单qo(h)所?Archive cd和完成的dQ徏议启用该功能Q在聚焦模式下会(x)自动启用Q? <li>通过单击 <strong>Go Into</strong> qo(h)特定cd或查询中的Q务(在聚焦模式下同样适用Q? <li>通过拖放操作手动分类Q将储存库Q务分cd各类别中?</li> </ul> <p>?13 昄?jin)可用的手?Task List qo(h)器:(x)</p> <br /> <a name="fig13"><strong>?13. 手动 Task List qo(h)?/strong></a><br /> <img height="476" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-filters.jpg" width="491" /> <br /> <p>手动搜烦(ch)和过滤会(x)增加重复切换不同qo(h)器和分类器的负担。对于默认模式下的操作不使用Q但是它们对于计划和l织d的确有用。注意,?Focus on Workweek zdӞ手动qo(h)和分c设|被用Q可以通过关闭聚焦模式来恢复它们?/p> <p>当组l?Task List Ӟ可以通过 <strong>Move to Category</strong> 上下文菜单或者选择上下文菜单中?<strong>Remove from Category</strong> UdMd。除非通过上下文菜单显式地删除dQ否则即使Q务已l从查询中消失或者从cd中删除,仍然?x)显C在 Task List 中。被删除的Q务可以在 Archive 容器中找到。可以通过 Task List 端?Find 框方便地搜烦(ch) Archive 或其它地方的旧Q务。单d双?<strong>Clear</strong> 按钮或按?Esc 键可以恢复之前可见的d。Archive 容器对于查看之前已解决且被注释的d也很有用Q因为创建查询的一U通用Ҏ(gu)是排除已解决dQ但是请参阅 <a cmimpressionsent="1">查询讄</a>Q了(jin)解有兌一做法的注意事)(j)?/p> <p><a name="N104B3"><span id="ffcosmr" class="smalltitle">备䆾和导?/span></a></p> <table cellspacing="0" cellpadding="0" width="55%" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N104BC"><strong>技巧:(x)׃nd数据</strong></a><br /> <p>当用多个工作区Ӟ可以不通过 Import 获得dQ而是通过选择 <strong>Window > Preferences > Mylyn > Tasks</strong>Q将d数据目录讄Z个共享的位置。如果将q个位置攑֜一个网l驱动器上,那么它应该可以通过一个快速的q接q行讉KQ因为它?yu)被频繁讉K。这是一个高U选项Q只那些手动理其工作区位置的用户用?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>聚焦模式使用得越频繁Q?zhn)?Task List 变得越有h(hun)倹{默认情况下QTask List 的自动备份已被启用,可以通过 <strong>Window > Preferences > Mylyn > Tasks</strong> 讄备䆾目录?要从备䆾恢复 Task ListQ可以选择相应的单选按钮,q择一个备份快照。默认情况下QMylyn 每天为所有Q务数据制作快照,q保?30 天的备䆾Q通过 <strong>Preferences > Tasks</strong> 配置Q。可以通过单击 <strong>File > Export</strong> 导出d?/p> <br /> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br /> <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br /> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br /> </td> <td valign="top" align="right"><a class="fbox" cmimpressionsent="1"><strong>回页?/strong></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p><a name="N104D5"><span id="dopqyop" class="atitle">W?1 部分l束?/span></a></p> <p>在这?Mylyn 使用指南的前半部分中Q我介绍?Mylyn 的Q务管理功能。我向?zhn)展示了(jin)这些功能如何支持个性化的Q务管理,以及(qing)它们如何?Bugzilla 之类的基?Web 的问题跟t器完全集成?Eclipse 中。我q对 Mylyn 理的典型的工作周或工作日作?jin)概qͼq展C如何管?Task List?/p> <p>无论(zhn)感兴趣的Q务储存库有多,Task List 视图只提供一个单独的位置来从中管理所有工作。这使?zhn)可以工作日中的更多旉花在高效?Eclipse 中,而不必频J切换到外部的浏览器H口。这q意味着(zhn)可以获得基?Web 的问题跟t器的富客户Z验,例如拖放附g和离U支持?/p> <table cellspacing="0" cellpadding="0" width="150" align="right" border="0"> <tbody> <tr> <td width="10"><img height="1" alt="" src="http://www.ibm.com/i/c.gif" width="10" /></td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee"><a name="N104E5"><strong>分nq篇文章……</strong></a><br /> <p> <table cellspacing="0" cellpadding="0" width="135" border="0"> <tbody> <tr> <td colspan="2"><img height="5" alt="" src="http://www.ibm.com/i/c.gif" width="1" border="0" /> </td> </tr> <tr valign="top" align="left"> <td width="21"><a cmimpressionsent="1"><img height="10" alt="digg" src="http://www.ibm.com/i/v14/icons/10x10-digg-thumb.gif" width="10" border="0" /> </a></td> <td><a cmimpressionsent="1">提交?Digg</a> </td> </tr> <tr> <td colspan="2"><img height="5" alt="" src="http://www.ibm.com/i/c.gif" width="1" border="0" /> </td> </tr> <tr valign="top" align="left"> <td width="21"><a cmimpressionsent="1"><img height="10" alt="del.icio.us" src="http://del.icio.us/static/img/delicious.small.gif" width="10" border="0" /> </a></td> <td><a cmimpressionsent="1">发布?del.icio.us</a> </td> </tr> <tr> <td colspan="2"><img height="5" alt="" src="http://www.ibm.com/i/c.gif" width="1" border="0" /> </td> </tr> <tr valign="top" align="left"> <td width="21"><a href="javascript:location. cmimpressionsent="1"><img height="16" alt="Slashdot" src="http://images.slashdot.org/favicon.ico" width="16" border="0" /> </a></td> <td><a href="javascript:location. cmimpressionsent="1">提交?SlashdotQ?/a> </td> </tr> <tr> <td colspan="2"><img height="5" alt="" src="http://www.ibm.com/i/c.gif" width="1" border="0" /> </td> </tr> </tbody> </table> </p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>使用 Mylyn 的最_ֽ部分卛_出现。一旦Q务显式呈Cؓ(f)工作的组成部分,Mylyn 开始自动管理它们的上下文。本文的W?2 部分介绍 Mylyn 的上下文理功能Qƈ展示q些功能如何减少信息蝲Q以?qing)如何多Q务处理简单到只需一ơ单d可完成。现在就请阅?<a cmimpressionsent="1">W?2 部分</a>?/p> <img src ="http://m.tkk7.com/conans/aggbug/209878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/conans/" target="_blank">CONAN</a> 2008-06-22 18:51 <a href="http://m.tkk7.com/conans/articles/209878.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://66661660.com" target="_blank">99ƵоƷƵѹۿ</a>| <a href="http://0755szyxcm.com" target="_blank">AVƬ߹ۿ</a>| <a href="http://hgbookvip.com" target="_blank">ɫ͵͵</a>| <a href="http://lswqn.com" target="_blank">޾Ʒ߲</a>| <a href="http://77tok.com" target="_blank">һ߹ۿ</a>| <a href="http://tha2008.com" target="_blank">ðѹۿվ</a>| <a href="http://470577.com" target="_blank">պav</a>| <a href="http://9527paotui.com" target="_blank">ձɫַ</a>| <a href="http://djyvp32.com" target="_blank">޾Ʒ³ĵӰ</a>| <a href="http://daohang123456.com" target="_blank">Ƶһ߹ۿ</a>| <a href="http://nxjyyj.com" target="_blank">޾ƷִִˬAƬ</a>| <a href="http://kppp4.com" target="_blank">վ</a>| <a href="http://szicon.com" target="_blank">18ŮվɫƬѹۿ</a>| <a href="http://wwwp784.com" target="_blank">ƬվAëƬ</a>| <a href="http://sd-ll.com" target="_blank">޸ľƷԭ </a>| <a href="http://5d8f.com" target="_blank">վѹۿ</a>| <a href="http://31xyz.com" target="_blank">ĻۺϾþ</a>| <a href="http://jdvgo.com" target="_blank">ɫͼУ԰ɫ</a>| <a href="http://hljjlhl.com" target="_blank">޾Ʒ2021</a>| <a href="http://av56cc.com" target="_blank">aëƬȫѲ</a>| <a href="http://2h6m.com" target="_blank">߹ۿ</a>| <a href="http://yanshimlxg.com" target="_blank">AžƷһ</a>| <a href="http://yy12345.com" target="_blank">þ޹</a>| <a href="http://234an.com" target="_blank">޾Ʒ벻߲</a>| <a href="http://hidiaoyan.com" target="_blank">㽶һƵ߹ۿ</a>| <a href="http://wcnmgb.com" target="_blank">ŷɫƵ߹ۿ</a>| <a href="http://saozib.com" target="_blank">ѿԻ40</a>| <a href="http://88109a.com" target="_blank">޾Ʒþ</a>| <a href="http://19b1.com" target="_blank">ŮƷþ</a>| <a href="http://sxgzjssb.com" target="_blank">˳߹ۿվƷ</a>| <a href="http://z88d.com" target="_blank">ŷŮƵ</a>| <a href="http://0755host.com" target="_blank">޹Ʒר߹ۿ</a>| <a href="http://jdwx58.com" target="_blank">91㽶߹ۿѸ</a>| <a href="http://www137av.com" target="_blank">һҴ</a>| <a href="http://mosason.com" target="_blank">ɫƷvrһ</a>| <a href="http://www-64000.com" target="_blank">һ߹ۿ</a>| <a href="http://0595laser.com" target="_blank">þ99Ʒһ</a>| <a href="http://www42iii.com" target="_blank">ëƬƵ߹ۿ</a>| <a href="http://805ios.com" target="_blank">vaר</a>| <a href="http://xiaoduanfa.com" target="_blank">av߹ۿ</a>| <a href="http://xianfeng-motor.com" target="_blank">߿Ƭ˳Ƶ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>