??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲gv猛男gv无码男同短文,亚洲精品无码av天堂,亚洲男人天堂2022http://m.tkk7.com/conans/category/32368.html你越挣扎我就兴?/description>zh-cnSat, 18 Dec 2010 10:22:47 GMTSat, 18 Dec 2010 10:22:47 GMT60优化JVM参数提高eclipseq行速度http://m.tkk7.com/conans/articles/339581.htmlCONANCONANThu, 02 Dec 2010 02:49:00 GMThttp://m.tkk7.com/conans/articles/339581.html
首先建立评估体系Q将workspace里所有的目close掉,关闭eclipse。优化的用例是启动eclipseQopen一个项目,eclipse会自动buildq个目Q保证没有感觉到明显的卡Q也是没有full GC?

开始:

eclipse.ini里加入打印gc情况的参敎ͼ

-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-verbose:gc
-Xloggc:gc.log


q样eclipse在运行过E中会记录gc日志Q显Cl的gc情况Qƈ打印在gc.log中,通过分析q个日志Leclipse的性能瓉和优化方式?
我最初的参数只是在原版基上调了堆大小
-Xms512m
-Xmx512m


堆初始化和最大DZP消除堆大根据当前堆使用情况而变化带来的影响?
启动eclipseQ发现gc.log里打Z很多full gc的日?
引用
4.226: [Full GC 4.226: [Tenured: 18470K->19304K(30544K), 0.1159544 secs] 25154K->19304K(44368K), [Perm : 24574K->24554K(24576K)], 0.1160431 secs] [Times: user=0.13 sys=0.00, real=0.13 secs]

在启动的6U多旉里共出现?ơfull gcQ所以启动慢Q觉得启动时候挺卡的。从日志里可以看出来 FullGC主要是在回收tenured区和Perm区,其中Perm一直都是快满的状态,Perm : 24574K->24554K(24576K)QPerm大小在不断调_所以需要固定Perm区的大小Q保证够用,eclipse.ini里加?
-XX:PermSize=64m
-XX:MaxPermSize=64m


再启动:发现没有full gc了只有数量比较多的minor gcQ挑启动开始到启动完成的第一条和最后一条日?
引用
0.209: [GC 0.209: [DefNew: 4416K->511K(4928K), 0.0034707 secs] 4416K->614K(15872K), 0.0035239 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
….
6.383: [GC 6.383: [DefNew: 18880K->1985K(21184K), 0.0055311 secs] 46992K->30098K(68040K), 0.0055694 secs]

q?U中GC日志打了69ơ, 而内存回收率q是蛮高?young?8880-1985=16895 jvm 46992-30098=16894 都快接近100%了,可以看出young区是由小到大在不断调整大,所以不断GCQ因此设一个初始值吧Q据说设|heap?/4比较好,那就? 128MQ所以eclipse.ini加入
-Xmn128m


再重启,发现GC日志四条了Qeclipse启动自然快了

引用
1.292: [GC 1.292: [DefNew: 104960K->10984K(118016K), 0.0334165 secs] 104960K->10984K(511232K), 0.0334603 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]
2.182: [GC 2.182: [DefNew: 115944K->1852K(118016K), 0.0221714 secs] 115944K->11466K(511232K), 0.0222142 secs] [Times: user=0.00 sys=0.02, real=0.02 secs]
3.987: [GC 3.987: [DefNew: 106779K->12531K(118016K), 0.0378228 secs] 116393K->22145K(511232K), 0.0378692 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]
5.377: [GC 5.377: [DefNew: 117491K->9403K(118016K), 0.0513728 secs] 127105K->31364K(511232K), 0.0514133 secs]


但是Q启动后open我的多个目Q这些项目互怾赖,eclipse自动buildQ感觉有点小卡,发现日志里多?ơfull GCQ所以就卡了…
引用
67.320: [Full GC (System) 67.320: [Tenured: 88847K->68809K(393216K), 0.2121213 secs] 117385K->68809K(511232K), [Perm : 41915K->41915K(65536K)], 0.2121747 secs] [Times: user=0.20 sys=0.00, real=0.20 secs]
103.759: [Full GC (System) 103.759: [Tenured: 81882K->66784K(393216K), 0.3287387 secs] 185350K->66784K(511232K), [Perm : 53464K->53414K(65536K)], 0.3287897 secs] [Times: user=0.33 sys=0.00, real=0.33 secs]


q个时候Tenured区和Perm都还没到很接q最大|但是Z么还有full GC呢,开始以为是JVM悲观认ؓTenured区剩余空间不以应对下一ơminor GC 所以进行了full GC调整TenuredI间Q烦性直接增加了堆最大值到-Xmx728mQ工作电脑的内存?.5GQ,但重启后full gcq是?ơ,而且有几ơminor GC用的旉过?.1U,q是因ؓ增加了堆大小Q导致GC用时也增加了Q不能接受。所以还是改?Xmx512m?
再仔l观察日志,发现Full GC (System) 字样Q这个意思是eclipse里调用了System.gc()手动触发了系lGCQ好吧,哥已l给你分配够空间了Q你q省吧Q在eclipse.ini里加入:
-XX:+DisableExplicitGC


q样差不多了,整个q程没有出现full gcQ再~码2个小Ӟ中间只出C一ơfull gcQ在open build?0W?的代码的时候,eclipseq是卡了…
最后又E微调了一下各代的大小Q得到目前的参数Q?
-Xms512m
-Xmx512m
-XX:PermSize=96m
-XX:MaxPermSize=96m
-Xmn168m
-XX:+DisableExplicitGC

另外没有去调GC{略Q主要是觉得eclipse是客LE序Q默认的client单线E的GC{略应该是比较适合的,以后有时间再试试看吧?


CONAN 2010-12-02 10:49 发表评论
]]>
关于jdk1.6.21与eclipse 3.6冲突的完解x?/title><link>http://m.tkk7.com/conans/articles/338378.html</link><dc:creator>CONAN</dc:creator><author>CONAN</author><pubDate>Thu, 18 Nov 2010 06:32:00 GMT</pubDate><guid>http://m.tkk7.com/conans/articles/338378.html</guid><description><![CDATA[jdk1.6.21在eclipse 3.6下存在冲H的问题Q但说的不是很详l,有h问到Q那我就再说一下吧。这是这个官方就有说明的Q在下蝲面很明昄标出了,只是有的同学不是在官方下载的或者太_心没注意到。我们看官方是怎么说的?br />    <p>       The Eclipse 3.3 - 3.6 launchers for Windows had a problem with the Oracle/Sun Java VM version '1.6.0_21-b06'.</p> <p><strong>UPDATE: Oracle/Sun have released a respin of their JDK/JRE to fix this</strong>, so the recommended resolution of this problem is to download and re-install version 1.6.0_21-b07' or higher from <a class="external free" title="http://www.java.com" rel="nofollow">http://www.java.com</a> (alternative link is <a class="external free" title="http://java.sun.com/javase/downloads/index.jsp" rel="nofollow">http://java.sun.com/javase/downloads/index.jsp</a>). Make sure you have b07 or higher by running <tt>java -version</tt>.</p> <p>Before the fix was released, there were three choices to work around this: </p> <ol> <li>switch back to '<strong>1.6.0_20'</strong> (as of July 19, 2010 it can still be downloaded <a class="external text" title="http://java.sun.com/javase/downloads/widget/jdk_javafx.jsp" rel="nofollow">here</a>) </li> <li>Change the commandline for launching or add the following line after "-vmargs" to your <tt><a title="Eclipse.ini">Eclipse.ini</a></tt> file:<br /> <tt>-XX:MaxPermSize=256m</tt><br /> (<a title="Eclipse.ini">Detailed instructions/examples</a>) </li> <li>For 32-bit Helios, download the fixed <a class="external text" title="https://bugs.eclipse.org/bugs/attachment.cgi?id=174640" rel="nofollow">eclipse_1308.dll</a> and place it into<br /> <tt>(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503</tt></li> </ol> <p>The Java bug was closed for voting and comments at <a class="external text" title="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6969236" rel="nofollow">6969236</a> on the Java BugParade because the change has been reverted; the related Eclipse bug report is open for voting and comments at <a class="external text" title="https://bugs.eclipse.org/bugs/show_bug.cgi?id=319514" rel="nofollow">bug 319514</a>.<br />     已经说得很明白了Q由?.6.0_21-b06中部分包的名字被Oracle公司修改了,会造成原先的插件内存泄Ԍ故官方也l出了三U解x案?br /> Q?Q把JDK的版本降U到 jdk <strong>1.6.0_20。下载地址Q?/strong><a class="external text" title="http://java.sun.com/javase/downloads/widget/jdk_javafx.jsp" rel="nofollow">here</a><br /> Q?Q修?tt><a title="Eclipse.ini">Eclipse.ini</a>文g里的讄Q在</tt>-vmargs后添加或修改下面q句<tt>-XX:MaxPermSize=256m?br /> Q?Q对?2位版本的Eclipse3.6Q可以下载这个补丁?/tt><a class="external text" title="https://bugs.eclipse.org/bugs/attachment.cgi?id=174640" rel="nofollow">eclipse_1308.dll</a>Qƈ且放|到<tt>(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503?br /> Q?Q升Ujdk</tt>1.6.0_21-b06?.6.0_21-b07或更高?/p> <img src ="http://m.tkk7.com/conans/aggbug/338378.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> 2010-11-18 14:32 <a href="http://m.tkk7.com/conans/articles/338378.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mylyn 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上下文,提高了效率。Mylyn 目ȝ Mik Kersten 更新了他撰写的分两部分的 Mylyn 使用指南?a cmimpressionsent="1">W?1 部分</a> 介绍 Mylyn 的Q务管理功能和它与 Bugzilla 之类的储存库的集成。本文ؓW?2 部分Q解释当?Eclipse 中处理大型应用程序时QMylyn 的上下文理功能如何化多d处理以及如何减少信息蝲?/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> 中,我解释了 Mylyn 的Q务管理功能如何轻村֜聚焦与给定工作日或工作周相关的Q务。一旦Q务成为您?Eclipse 体验中的集成部分Q您很可能会注意到许多重复性行为都是以所处理的Q务的<em>上下?/em> Z心的。多d处理是当今知识工作中很普遍的一部分Q它常常需要创建和重新创徏与当前Q务相关的上下文。Q务的上下文是指在处理d旉要引用的所有文件、搜索结果和其它相关信息。例如,在编E时Q可能只想看C正在修复?bug 相关?Java™ 元素。当完成修复Ӟ您可能希望以独立于当天处理的其它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是利用了您的智慧。Mylyn 通过利用q样一个事实做到这点:与每个Q务涉及的l节相比Q组成工作的各个部分Q即您所处理的Q务)更加Ҏ索。它以一U可预测的方式自动捕捉您所处理的所有细节,使您无需再经历重新检索或重新查找的繁琐过E。Mylar 上下文是您同pȝ元素及关p进行交互的一U可预测的投影,它ƈ没有使用难于预测和理解的知识型模型。这U模型十分灵z,正逐渐被扩展到q泛的知识工作工具中。请参阅 <a cmimpressionsent="1">参考资?/a> 节Q了解更多关?Mylyn 内部原理和架构的信息Q以及ؓ目扩展 Mylyn 的更多细节?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>正如 Mylyn 可以帮助您聚焦工作周所包含的Q务一P它可以 Eclipse 工作焦与当前d相关的工件上。安?Mylyn ?Task-Focused UI 之后Q只需指出zd的Q务,您所使用的所有文仉自动添加到该Q务的上下文中。管理上下文是ؓ了精地表示出对所从事的各U工件的聚焦E度Q即使对长期q行的Q务也是如此。当切换dӞ上下文将被保存,q您可以通过一ơ单击进行多d处理Qƈ且轻村֜与其他h׃n特定于Q务的知识?/p> <p>本文解释?Mylar 如何无缝地将其置?Eclipse UI 之上来凸现编EQ务的上下文。本文首先解?Mylyn 理上下文的机制Q然后介l兴修饰、视图过滤、编辑器理和上下文驱动的单元测试套件等 UI 工具。在文章的最后,展示了如何综合运?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="wkemyai" class="atitle">以Q务ؓ中心的编E?/span></a></p> <p>设想一下,假设您正在将更改装到新功能里,来应对迫q的代码ȝ期限。在工作中,创徏此功能时Q构Z关于所有修改过的类和方法以及所有访问过?API 的颇有h值的知识。由于在使用 MylarQ这个知识会自动地在d上下文中获取到。Q务要完成Ӟ却出C一个严重的 bugQ需要立即给予注意?/p> <p>您通过单击Ȁz?bug 报告Qƈ开始调查该问题。在 Mylar 的富d~辑器中览?bug 加了链接的堆栈跟踪Q新的Q务上下文被探查和诊断l果所填充。当单击 Mylyn 的自动化 Context Test SuiteQ该套gq行与已创徏的Q务上下文l构相关的单元测试)Ӟ您发现这?bug 位于一个同事的代码中,而不在您的代码中。由?Mylyn 提供了对d的修改历史的链接Q您可以立即查看该同事的dQ它对应于出现问题的更改。通过再一ơ单击,该 bug 再分配给同事q共享由您的诊断得出的Q务上下文。完成这些都未离开 EclipseQ所以通过单击 Task List ?<strong>Back</strong> 按钮可以立即回到之前d的上下文。同Ӟ您的同事也恰在您停止的地Ҏ赯 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 附带了用?Eclipse SDK 的一l核心的桥接器,其中包括?Java 代码、JUnit、Plug-in Development Environment (PDE)、Ant 和纯文本文g的支持。ؓ了获得完全集成的体验QMylyn 需要一个用于所有要使用的工具和语言Q例?Ruby ?JSPQ的桥接器。如果缺特定于您所使用的编E语a或其它文件类型的桥接器,Mylyn 仍然会提供文件别的聚焦Q但是不能监视您与文件内部结构的交互Q例如编辑特定的声明Q。这意味着?Package Explorer 中只能看到感兴趣的文Ӟ但是不能执行l粒度的声明qoQ例如在 Outline 视图中)以及在编辑器中自动折叠声明,也不具备诸如d Context Test Suites {高U特性?/p> <p>Z提供 <a cmimpressionsent="1">自动化更攚w理</a>QMylyn q需要对版本控制集成q行某种扩展。Mylyn 附带了对 CVS 的支持,但是?Subversion {其它版本控制系l的支持则需要单独安装。请查看 <a cmimpressionsent="1">参考资?/a> 中的 Mylyn Extensions 清单Q下载用?Mylyn 的额外的桥接器和版本控制集成?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>接下来的节展示如何利用 Mylyn 的上下文理功能以Q务ؓ中心的方式工作。虽然这里的例子Z Java 开发,但其中的概念和大多数Ҏ同样适用于可能用的MZ文g的工件。(请参?<a cmimpressionsent="1">支持的工?/a>Q了解更多细节。)</p> <p><a name="N100DD"><span id="wksgack" class="smalltitle">兴趣{模型</span></a></p> <p>Mylyn 中的d上下文管理基于这L思想Q开发h员与pȝ的交互可以{换ؓ一?em>兴趣{Qdegree-of-interestQ模?/em>Q在该模型中Q系l中的每个元素都Ҏ其与手头d的兴等U来衡量其权重。这U相兛_加权形成了与d相关的所有元素的上下文。然后,可以通过H出最重要的元素、过滤无关紧要的元素以及允许在感兴趣的元素上执行操作Q例如,只提交相x改)来d上下文聚焦于 UI。Q务上下文是在您工作时以一U可预测的方式构建的Q当您激zM个Q务时Q您选择或编辑的每个元素 —?例如文g?Java Ҏ —?成ZQ务上下文的一部分。和元素交互多Q该元素相对于Q务的兴趣{񔞮p高。如果一个元素的兴趣U别_高,那么它就成ؓ一?em>里程(landmarkQ?/em>Q这是一个隐式创建的书签。每一ơ交互也Dl成d的所有元素已U篏的兴逐渐衰减Q这样兴元素的集合׃同当前的兴趣相匹配,而不会无限制的扩张下厅R?</p> <p>使Q务上下文模型单易用的关键特征是它h可预性ƈ且一目了Ӟ您期望看到的内容显C在眼前Q每当您开始处理一个元素时Q就立即可以看到该元素填充了上下文。还可以直接操纵元素的兴等U,或者元素变得不相养I或者显式地元素标Cؓ里程。换句话_您已l熟悉的 bookmark/starring/tagging UI 没有M损失。但是,一旦您习惯使用 MylynQ您很可能会发现自己寚w些手动管理Q务上下文的机制的依赖性大大减?/p> <p><a name="N100EF"><span id="mquwyek" class="smalltitle">兴趣修饰和过?/span></a></p> <p>Mylyn 的上下文理功能使用传统?Eclipse 视图以一U新的方式来凸现信息。您只需通过一ơ单LzMQ务,可以 Eclipse UI 聚焦于那个Q务。然后,您与之交互的每个元素都成ZQ务上下文的一部分。Mylar 兴趣修饰器随后用字体着色来高亮昄每个元素从交互中U篏的兴等U。非兴趣元素以灰色显C,兴趣元素以黑色显C,里程ؓ_体?/p> <p>管只高亮显C在减少信息q蝲斚w有其局限性,但它q是一直应用于所有能看到诸如 Java 成员和文件等元素的视图中。这便于您在查看一长串的元素时快速挑选Q务上下文中的元素。例如,当查看搜索结果时Q可以立卛_现最感兴的元素Q因为它们以_体修饰为里E碑形式Q参?<a cmimpressionsent="1">?2</a>Q?/p> <p>仅仅使用修饰q不以减少包含几十万个文g的大型工作区中的信息蝲。一些结构化视图Q例?Eclipse ?Project ExplorerQ在览大型层次l构内容斚w已变得o人难以置信的高效。超载问题与那些视图无关Q而应该归因于开发h员用的巨大的信息系lƈ不匹配与Ml定~程d相关的相对较的信息。对于这U不匚wQ最明显的表现是Q大量时间浪费在反复滚动以及展开/折叠庞大的树视图以查扑֮成工作所需的信息?/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>技巧:不过滤子节点</strong></a><br /> <p>Z减少需要关闭聚焦模式的ơ数QMylyn 提供?Alt+Click 机制Q您可以在树视图中暂时不过滤一个节点的子节炏V例如,Z选择一个不可见的方法,可以按住 Alt 键ƈ单击c,q择那个ҎQ以便将它添加到d上下文中。如果在视图中的I白处按?Alt q单击鼠标,则会昄所有的根节点(例如目Q。如果l按?Alt 键,可以快速地从一个项目节点导航到感兴的Ҏ?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>Mylyn 的目标是消除所有不需要的滚动和单L作。ؓ此, Task-Focused UI 提供Z兴趣的过滤和l构化视囄理。通过 <strong>Focus on Active Task</strong> 按钮ȀzdQ这些功能可以过滤掉所有不感兴的元素Q从而将相应的视图聚焦于zdd的上下文。例如,聚焦模式保 Package Explorer 只显C您正在处理的内容:属于d的一部分的所有源文g、库文g和方法。除了过滤外Q当应用聚焦ӞMylyn q自动维护树视图的展开状态,所以您不需要手动地展开和折叠树节点p看到感兴的元素?/p> <p>开始在视图上用聚焦模式后Q您注意到兴趣模型如何随着工作而演q。一个元素的被选中ơ数多Q元素的兴趣{񔞮p高,直到它变为粗体的里程。低兴趣的元素(如只选过一ơ的搜烦命中l果Q将在兴等U中衰减q从qoq的视图中消失,q确保该视图不会被非兴趣元素所胀满。由于Q务上下文在一U可预见的模式下被积极地理Q上下文只包括了有兴等U的元素Q即使在长期q行的Q务中也是如此。尽设?Mylar 的Q务上下文模型是ؓ了能够一直反映当前与d相关的东西,但也可以手动地增加或减少元素的兴等U(例如Q通过使用元素的上下文菜单行ؓ或用快捷键 Ctrl+Alt+Shift+ 向上/向下的箭_?/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="segkuca" class="atitle">以Q务ؓ中心的工作区</span></a></p> <p>在深入探?Mylyn 提供的用于支?Java 开发的高集成之前Q您需要大体了解在处理U文本文件时QTask-Focused UI ?Eclipse 工作区的关键贡献。图 2 演示了这些关键概念:</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务ؓ中心的工作区</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 开发ؓ例,较详l地阐述如何以以dZ心的方式工作。但是,dȀzR视图聚焦和~辑器管理等概念是?Mylyn 的最值得注意的关键方面。您只需理解dȀzȝ概念Q就可以开始用以dZ心的方式工作。这U小但重要的工作方式的改变会立即使您LQ当您切换Q务时Q您在工作中建立h的所有有价值的上下文不再会丢失?/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>技巧: 配置 Task-Focused UI </strong></a><br /> <p>默认情况下大多数 Task-Focused UI Ҏ都是打开的,但是可以通过视图或编辑器中相应的按钮或者偏好设|关闭它们。要了解更详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="icggwua" 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 中。您选择和编辑的每个Ҏ都被dCQ务上下文中,因此会显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。ؓ使在 Open Type 对话框中选择cd更加单,感兴的cd被自动放在列表的最上面。当切换dӞ列表中包含新d感兴的cd。当没有zddӞ该列表恢复ؓ最q用类型的 Eclipse 全局列表?/p> <p>如果使用 Java Browsing 透视图,请用窗口的工具栏按钮,通过单击三U?Java 元素视图设ؓ聚焦模式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>技巧:快速视?/strong></a><br /> <p>如果使用没有可见D视图的透视图(例如 Debug 视图Q,或者将~辑器区域最大化Q那么仍然可以从 <strong>Navigate > Quick Context View</strong>Q快捷键?Ctrl+Shift+Alt+右箭_D上下文。和 Quick Outline (Ctrl+O) {其它快速视图一Pq种弹出视图的优Ҏ允许您输入,以导航到感兴的文g或元素?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p><a name="N10184"><span id="kcwyaqq" class="smalltitle">自动折叠和内容辅助排?/span></a></p> <p>Eclipse 成熟?Java ~辑器您可以在~辑器中处理大多数结构导航。此外,Mylyn q提供了自动折叠和内容辅助排序,以帮?Java ~辑器聚焦与当前d相关的元素。如果打开H口工具栏中 Mylyn ?<strong>Automatically Fold Uninteresting Elements</strong> 按钮Q那么在~辑器中只有感兴的元素被展开。这可以增加~辑器的信息密度Qƈ且更易于D大型文g中的声明Q而不必打开 Outline 视图。当选择一个元素时Q它立即成ؓ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只需按几ơ向下箭头键可以选择感兴的。如果在选择前开始输入,该列表会恢复为典型排序。还应注意到Q在?4 中,诸如 <code>getTask()</code> {感兴趣的方法在~辑器中也是展开的。公开元素兴趣{的各U机刉的一致性有助于 Focused UI 变得可预见且易于使用?/p> <p><a name="N101A6"><span id="eogsckq" class="smalltitle">自动~辑器和透视囄?/span></a></p> <p>Mylar 也用Q务上下文来动态地理和Q务相关的打开~辑器的数目。当文g中的元素从兴等U中衰减Q该~辑器会自动关闭。当停用一个Q务时Q它所有的~辑器都会关闭,dȀzL重新打开。减元素的兴趣{会关闭其~辑器,且反之亦Ӟ关闭一个文件也会减其兴趣{。这可能需要一Ҏ间才能适应Q但是这意味着您不再需要自q理打开的编辑器的状态,q且打开的编辑器的数量也不至于太多。确保所有打开的编辑器与感兴趣的元素相对应Q这q您可以?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 开发)Ӟq一点很有用。当使用 Mylyn ?Planning 透视图时Q该功能特别用。如果在没有zdd时切换到 Planning 透视图,那么当停止要处理的下一个Q务时Q就会自动切换到那个透视图。?Planning 透视囑֏以更Ҏ地发现接下来要处理哪个Q务,因ؓq个透视图会Q务编辑器?Task List 的区域最大化?/p> <p><a name="N101B5"><span id="mugaayw" class="smalltitle">使用 Ant、PDE 和其它源文g</span></a></p> <p>Mylyn 的聚焦功能可以应用于所有在 Eclipse SDK 中显CZ下文的视图:Package Explorer、Navigator、Project Explorer、Outline、Problems、Tasks、Debug、Packages、Types ?Members。Q何树视图的聚焦模式,?Project Explorer 都添加了兴趣修饰、过滤和展开理。在聚焦模式下,列表视图Q例?ProblemsQ也会按照兴等U分cR由于这U通用的支持,即定制的桥接器不支持您的工P?<a cmimpressionsent="1">支持的工?/a>Q,仍然可以?Mylyn 用于?Java 目Q例?PHP 开发。本节简要地概述如何?Mylyn 用于使用其它语言和工L~程。要了解更多信息Q请讉K <a cmimpressionsent="1">参考资?/a> 中的 Mylyn Extensions 链接?/p> <p>例如Q考虑使用 Ant ?PDE 开发一个应用程序。在q个场景中,Eclipse 工作区看上去和图 5 cMQ其中有多个视图被打开Qƈ昄上下文:</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>技巧:清理 to-do 标记</strong></a><br /> <p>?Mylyn ?Task List 视图相比QEclipse SDK ?Tasks 视图昄 to-do 标签{标讎ͼq种标记指示与一个资源有关的本地问题Q类g~译器警告。与 Mylyn 的Q务相比,q些标记的粒度要得多,因ؓ它们对应于数行源代码Q而一?Mylyn d可能包含多个标记。由?Tasks 视图很快会发生超载,因此使用聚焦模式可以很方便地提醒开发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 视图中,只能看到您正在处理的声明Q而不是许多不感兴的声明。Problems 视图也聚焦于zddQ只能看到感兴趣的东西(如所有的错误及警告或d上下文中其他的元素标讎ͼQ而不是被数百条无关的警告堆满而超载。最后,Eclipse Tasks 视图也处于聚焦模式,因而将只看Cd上下文相关的标记Q而不会看到数百条不会立即d?to-do 标记?/p> <p><a name="N101E8"><span id="yaueywm" class="smalltitle">Context Test Suite</span></a></p> <p>在以dZ心的方式下编E更易于频繁q行单元试。通常来说Q单元测试实践让您ؓ一个或多个当前正在从事的枯燥测试创Z个新的测试启动程序。其他的试Ҏ是:在一个项目上q行所有测试,q会错过一些相x试;或运行一整套试Q这很慢。ؓ解决q些问题QMylar 在Q务上下文中自动维护了元素的单元测试套?—?UCؓ Context Test SuiteQ见?6Q—?q在操作d时重复q行试变得很简单(用快捷键 F11Q:</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>要启用该Ҏ,?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="oasceoe" class="atitle">上下文用于协作</span></a></p> <p>协作性工具都是关于共享信息的QQ务上下文能聚焦于该信息而阻止信息超载和分散。开发h员不断来回发送电子邮件、即时消息及文gQ来交换执行日常d所需的必要消息。尽?Mylar 仍没有排除对x消息或电子邮件的需要,但它能够通过它们锁定在d周围来简化一些协作活动。由于Q务定义了清晰、易于理解的工作单元Q且d上下文定义了与工作相关的信息Q所以用单击来共享Q务上下文的功能能够减协作通信负担?/p> <p>?<a cmimpressionsent="1">W?1 部分</a> 中,我演CZ Mylyn 的Q务管理如何将Z Web 的储存库Q如 BugzillaQ集成v来,从而提供了您期待从电子邮g客户Z得到的那U协作集成程度和响应E度。这一节则解释 Mylar 对跟t更攚w和Q务活动的自动支持Q联合了对上下文׃n的支持)是如何进一步便利了团队工作及获取专门技术的。通常Q您可以Ҏ需要以?Mylar 同源文g及Q务存储库集成的程度挑选要使用的功能?/p> <p><a name="changesets"><span id="meisekq" 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>技巧:更改集模?/strong></a><br /> <p>Eclipse 有两U更攚w模式Q?.2 版中新出现的Z模型的更攚w和标准更攚w。尽这些模式实际上很难辨别Q但是基于模型的模式较ؓ可取Q因为它同时昄引入和传出的更改。要了解关于在这两种模式之间切换的详l信息,请参?Mylyn FAQQ参?<a cmimpressionsent="1">参考资?/a>Q?</p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p><em>更改?/em> 是一用于对资源分组的内|的 Eclipse 工具Q可以在 Synchronize 视图中对其进行操作,以提交、更新或创徏补丁。除非在一个静态的目中工作,否则手动理更改集常常得不偿失。Mylar 通过自动理更改集便利了Ҏ存储库的操作。一旦激zMQ务,该Q务的更改集即被添加,q后显C在 Synchronize 视图Q见?7Q中。操作该d时做出的更改被添加到该更攚w中。可以用位于视囄 Change Set 节点的上下文菜单来覆盖、提交或创徏一个补丁。由团队成员做出的更Ҏ照Q务分l显C,可以通过右键单击一个引入的更改集来打开相应的Q务。如果有了更改,但Q务停用,更改集不变,使您可以同时操作多项传出更改。Mylar 保在上下文和更攚w之间的一对一映射Q所以如果将一份文件手动地d到更攚w中(通过 Synchronize 视图中的上下文菜单)Q该文g也会被添加到上下文中。当前支持的源存储库?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>技巧:项目与d储存库关?/strong></a><br /> <p>ZҎ本和 Java ~辑器的引用启用链接,例如对于 Bugzilla ?“see bug 123”Q或者对?JIRA ?“ABC-123”Q必d与资源对应的目与一个Q务储存库相关联。ؓ此,可以右键单击目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Ҏ对您工作的方式产生Ҏ性媄响。例如,对于 Mylar 目本nQ不需要编写提交消息,因ؓ它们是由 Mylar 的更攚w集成Q?<strong>Window > Preferences > Mylyn > Team</strong> 面~辑用于生成自动提交消息的模板)自动生成的。这使我们能够通过单击?History 视图D至与修订相对应的dQ这节省了跟t更改及修订臛_始Q务的旉。相反地Q这也得可以通过 CVS 日志查询所有针对一个特定Q务更改过的文件。这个功能与 Eclipse 用于昄 Team Annotations 的功能和 Mylyn 的普通超链接Q见?8Q相l合Q意味着您将大量减少p在查找与一个更改相关的 bug 或Q务上的时_因ؓ通常只需一ơ单d可完成。(注意Qؓ了在弹出的文本编辑器中显C链接Q必L?Ctrl 键,如果要将弹出H口攑֜最前面Q需要按 F2 键)?/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="iakwywk" class="smalltitle">׃n上下?/span></a></p> <p>d上下文获取执行Q务时创徏的知识。重新激zM个Q务会立即您带回到该d的上下文Q而不是迫使您恢复与该d相关的那部分pȝ。如果半途将dUMl团队成员,d上下文会Z或她提供一个v炏V由于上下文是从交互中创建的Q而不仅从更改中创建,每个d上下文都包含了相关信息,如处理该d时访问过?API 以及引用q的文档。ؓ支持q个及类似的协作场景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如果当前有多个上下文的话)。例如,?Mylar 目中,我们上下文附在每一个解决了?bug 报告中,q且要求每一个A献的补丁都要附上上下文。这U通过上下文共享专门技术的Ҏ使应用补丁、与团队成员协作处理 bug 报告、在l对~程会话l束后清理代码变得更加简单。所有已解决?bug 都存储了一个上下文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="cmggiym" 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 的设计确保它的上下文理功能不媄?Eclipse 的性能。无论您使用的系l大如何,Mylyn 都可以做到这一点,因ؓd上下文只与您所做的量交互对应Q而与您用的pȝ的大没有关pRMylyn 对内存或速度的Q何明昑֪响都被视作一?bugQ都应该作ؓ严重问题q行报告。而且Q当没有zddӞMylyn 的Q务上下文理是完全休眠的。要了解关于 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了如何?Mylar q行以Q务ؓ中心的编E。我展示?Mylar 是如何通过Q务作?Eclipse 中头{重要的部分对待而让您日常的工作变得相当地简单。我也介l了 Mylar 如何使用 Eclipse 视图来帮助您聚焦于手边的dQƈZ人及团队的用凸现这些Q务的上下文?/p> <p>Mylar 背后的哲学是<em>就是多</em>。它集成的d理和自动上下文理工具l合使用Q您能够在不丢׃下文的情况下q行多Q务处理,q确保您只需要查看感兴趣的信息。一个针对于?Mylar 用于日常工作的业内开发h员所做的现场用户的研I已l验证了 Mylar 的Q务上下文模型Q参?<a cmimpressionsent="1">参考资?/a>Q。根据统计,q些用户的生产率有了显著的提高。而且Q由于进行了数千?bug/增强报告QMylyn 2.0 很快成熟hQ满_快速增长的用户C֌的需要。自从在 2004 q?8 月创?0.1 原型以来Q我一直将 Mylyn 用于我的所有工作。和很多其它 Mylyn 用户一P我已l无法想象还要手动寻扑ƈ识别工作中的相关信息的情景了。我完全依赖 Mylyn 来管理工作中的大量以dZ心的交互和多d处理?/p> <p>如果 Mylar 支持您的d存储库,它能使您的日常工作变得更加简单、更加有效且更加专注。如果它不支持您的Q务存储库Q您可以试着用它来完成个ZQ务。不何U情况,都请使用 Bugzilla 集成来给出回馈ƈ为您愿意看到被支持的其他q接器投。(参见 <a cmimpressionsent="1">参考资?/a>Q。您的A献将帮助我们q一步改q?MylynQ因为它持l围l严密的回馈机制快速发展,该工hw允许我们通过用户C֌建立q种回馈机制。其?Mylyn 提交者和我一P都期待收到您的回馈?/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="mmyquiq" class="smalltitle">致谢</span></a></p> <p>Mylyn 能获得成功ƈ且走到现在,很大E度上得益于大量的用户参与,?她们报告 bug qA献补丁。正是这U协作让 Mylar 从一个研I原型发展成Z Eclipse 用户在日常工作中所依赖的一个重要部分?/p> <p>Athen O'Shea、Robert Elves、Gail Murphy ?Ducky Sherwood Ҏ文提供了有帮助的回馈?/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上下文,提高了效率。Mylyn 目ȝ Mik Kersten 更新了他撰写的分两部分的 Mylyn 使用指南Q以便包括根?Mylyn 1.0 的大量用户反馈而作出的改进。第 1 部分介绍 Mylyn 的Q务管理功能和它与 Bugzilla、Trac ?JIRA {储存库的集成。在 <a cmimpressionsent="1">W?2 部分</a>Q您了解上下文理如何化多d执行Q以及如何减信息超载?/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ȝ的导航变得更ҎQ但是它们常怸以帮助您管理完成典型编EQ务所必须处理的大量信息。因此,l构化视图越来越不堪负荷 —?例如Q即使在D一个小型的企业应用E序ӞEclipse Package Explorer 也常怼昄数千个源文g —?您要费大量的时间来滚动、导航和跟踪q些信息?/p> <p>有趣的是Q在大多数情况下Q不需要查看系l的整个层次l构或者某个特定方法的每个引用可以完成编EQ务。例如,对于要修复的M bug 或者要d的Q何特性,您只对系l的某一部分感兴。Mylyn 是一U交互技术,通过?em>集成的Q务管?/em> ?em>自动上下文管?/em> q两个功能添加到 Eclipse 中,可以H出昄您感兴趣的系l内宏VQ务管理将 task/bug/defect/ticket/story/issue 跟踪器集成到 Eclipse 中,q提供高U的d~辑和Q务调度功能。上下文理监视您与 Eclipse 的交互,自动识别与当前Q务相关的信息Qƈ聚焦l构化视囑֒~辑器,使其只显C相关信息。这两个功能一L成了 Mylyn ?Task-FocusedQ以dZ心)UIQ多Q务处理变得更ҎQƈ且极大减了信息蝲。(至于实际研究l果Q请参阅 <a cmimpressionsent="1">参考资?/a> 节中研I论?“Using Task Context to Improve Programmer Productivity” 的链接。)</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元更高效地导电而加快我们的思考。Mylyn q个名称源于 myelinQ因为很多用户声U?Mylyn 大大提高了工作效率,能够以思考的速度~写代码。以前,q个目被称?MylarQ与一U朔料薄膜的名称相同?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>q个׃部分l成的文章是一?Mylyn 使用指南。本文的某些内容Q尤其指x~程而不是Q务管理的内容Q假设您熟悉 Eclipse IDE。第 1 部分?Mylyn 入门Qƈ介绍了它在Q务管理方面的功能?a cmimpressionsent="1">W?2 部分</a> 介绍 Mylyn 的上下文理功能Qƈ讨论它的 Task-Focused UI 对编E和开发方法的影响。ؓ方便赯Q将同时发表q两部分内容?/p> <p>W?1 部分q不适用于编E活动,它适用于在M Eclipse 发行版或者集?Mylyn 的独立应用程序中使用 Mylyn?a cmimpressionsent="1">W?2 部分</a> 主要讨论 Java™ ~程Q但是也讨论了适用于所有基?Eclipse 的工L一些特性。在本文的例子中Q我使用 Bugzilla 作ؓd储存库,但是q里的概念和 UI 同样适用?<a cmimpressionsent="1">Mylyn 支持的其它Q务跟t器</a>。即使您打算通过不同的连接器使用 MylynQ徏议您q是看看使用 Bugzilla Connector 的步骤,以便熟悉关键Ҏ?/p> <p><a name="N10087"><span id="isuyqec" class="atitle">Mylyn ?/span></a></p> <p>Mylyn 通过d跟踪q样的复杂机制扩展了 Eclipse SDKQ从 <a cmimpressionsent="1">参考资?/a> 节查看受支持的版本Q?em>dQtaskQ?/em>是您希望回调或与他h׃n的Q何工作单元,例如一个用h告的 bugQ或者关于一个特性改q的说明。Mylyn 使您可以在工作区本地存储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 聚焦感兴的信息、隐藏不感兴的信息、自动发现相关的信息。具备了完成d所需的信息,可以减执行搜索、导航和滚动操作的时_从而提高工作效率。通过H出d上下文,Mylyn q有助于多Q务处理、计划、重用过ȝ工作以及׃n专家l验?/p> <p>使用 Mylyn 一D|间之后,您的工作方式会发生微妙但是重要的变化。一旦习惯了以Q务ؓ中心的工作方式,您很可能会发现工作效率有了极大的提高。您的工作变得井井有条,可以l筹理数十个协作Q务ƈ跟踪q程Q这些事情都变得非常Ҏ?/p> <p>?1 中的~号区域昄?Mylyn 的一些Q务管理和上下文管理特性:</p> <ol> <li>含活动Q务的d列表QTask ListQ和当天计划好的 Bugzilla 报告 <li>׃Q务上下文理的更攚w <li>hȝ支持的富d~辑? <li>Eclipse Package Explorer 上以dZ心的模式 </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ƈ介绍它的关键Ҏ。对 Mylyn 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="repositories"><span id="yicugmk" class="atitle">d储存库连接器</span></a></p> <p>在本文中Q我使用 Mylyn ?Bugzilla Connector 来展CZ用Q务储存库集成的关键概c对于其它受支持的Q务储存库Q这些概忉|相同的,只是集成U别和连接器的成熟度有所不同。与 Mylyn 捆绑?Bugzilla ?Trac q接器非常成熟,q且被视作参考实现。Mylyn Extensions 面Q参?<a cmimpressionsent="1">参考资?/a> 节Q列Z用于其它问题跟踪器和目理工具的连接器Q例?CollabNet、Rally、Mantis ?XPlannerQ?/p> <p>完全集成的连接器提供以下Ҏ:</p> <ul> <li><strong>查询QQueriesQ?/strong>Q查询是用于各lQ务取回到 Mylyn ?Task List 中的一U机制。查询编辑和索功能特定于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附加到储存库中,或者从储存库中索文件。该Ҏ允总操作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 作ؓd收g,而不用依赖于电子邮g客户端?</li> </ul> <p>Z让您?Mylyn 获得完整的集成,q停止对外部或基?Web ?UI 的依赖,q接器必L持这里列出的所有四个功能。但是,只要 Eclipse 具备<em>_</em> 可用于处理Q务的功能Q则仍然可以?Mylyn ?Task-Focused UI 中获益。如果连接器的Q务储存库不可用,您仍然可以:</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了解更多信息?br /> <br /> <li>hd储存库提供商创徏一个用?Mylyn 的连接器。还可以考虑?Mylyn bug |页为您的连接器投票Q参?<a cmimpressionsent="1">参考资?/a> 节Q?br /> <br /> <li>创徏自己的连接器Q请参阅 <a cmimpressionsent="1">参考资?/a> 节Q提供了?Integrator Reference 的链接)?</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="qeyskiw" 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 版本中,下面的说明仍然会提供帮助?/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>技巧:Mylyn 要求 Java 5 或更高版?/strong></a><br /> <p>Mylyn 构徏?Java 5 的基上。如果试囄 JRE 1.4 或更早的版本q行它,那么它不能工作,q且会在启动时报错。可以通过 <strong>Help > About Eclipse SDK > Configuration Details</strong> ?Eclipse 使用哪个版本?JRE。有兛_装方面的故障排除Q请参?Mylyn FAQ Q参?<a cmimpressionsent="1">参考资?/a> 节Q?</p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>要安装适合您用的 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因为后者不会执行正的依赖性检查。在 Eclipse 3.3 上,q两U方法都可行。想要了解提?Update Manager 的最?Mylyn 更新站点Q请参?Mylyn 的下载页面(参阅 <a cmimpressionsent="1">参考资?/a> 节Q?/p> <p>Mylyn 的一个关键设计目标是?Eclipse 已有?UI 工具无缝集成。另一个目标是要求用户只安装和使用需要的Ҏ。图 2 昄了用于选择要安装的Ҏ的 UI。例如,如果您的d?bug 归类QtriagingQ而不是开发,那么可以安装 Mylyn ?Task ListQ而不必安?Task-Focused UIQƈ且可以独立地选择用于问题跟踪器的q接器。Y件开发h员很可能要同时安装这两个Ҏ?/p> <br /> <a name="fig2"><strong>?2. 选择 Mylyn Ҏ和储存库连接器 </strong></a><br /> <img height="164" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-install.jpg" width="267" /> <br /> <p>当从更新站点选择要安装的Ҏ时Q可以选择一个或多个要用的d储存库。注意,正如 Mylyn Downloads 面提示的,您可能需要添加额外的更新站点Q以获得所需的连接器。当安装推荐?Task-Focused UI Ҏ时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="miieeuc" class="atitle">d和查?/span></a></p> <p>Mylyn 提供了用两U类型Q务的支持Q?/p> <ul> <li><strong>本地d</strong>存储?Eclipse 工作区,提供基本的Q务管理特性,例如调度。本CQ务是U有的,q只Ҏ可见?br /> <br /> <li><strong>储存库Q?/strong>存储在与一个外部应用程序或服务器对应的一个Q务储存库中。储存库d常常在多Z间共享,但是仍然提供所有的本地d功能Q例如个度和注解?</li> </ul> <p>本节展示如何创徏和编辑本CQ务,q考察用于使用储存库Q务的可用Ҏ。这里谈到的Ҏ的可用性取决于q接器的 <a cmimpressionsent="1">集成U别</a>Q所以只需参考那些适用的特性。无接器集成U别是多,都可以?<a cmimpressionsent="1">d理和个?/a> 中讨论的 Mylyn 的所有Q务管理功能?/p> <p><a name="startedwithlocal"><span id="skmwiwk" class="smalltitle">本地d初解</span></a></p> <p>安装 Mylyn 之后Q遵循以下步骤:</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 键。)?Task List 中双MQ务可以打开d~辑器(如图 4 所C)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>创徏了十几个或者更多的本地d之后Q您可能想通过创徏<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ؓ已完成的d会被qo掉,但是也可以通过 Task List 的视图菜单(使用 Task List 视图工具栏右侧的倒三角Ş打开Q选择不过滤它们。ؓ了避免凌乱,不要昄那些不显CZQ何Q务的cdQ例如,所包含的Q务全部完成的cdQ。?Task List 端?<strong>Find:</strong> 框访问被qo的Q务。最后,可以通过d~辑器ؓ本地d讄优先U和计划信息?a cmimpressionsent="1">d理和个?/a> 节更深入地讨划?/p> <p>Z熟悉 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="wggkuca" class="smalltitle">dd储存?/span></a></p> <p>不同d储存库在功能和Q务管理的指代斚w可能有较大差别。Mylyn 的Q务管理功能提供了一U统一的方式用多U储存库Q包括:</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>技巧:d储存库后认讄</strong></a><br /> <p>Mylyn 的最常见问题和Q务储存库的连接有兟뀂?<strong>Validate Settings</strong> 按钮来验证您输入的凭证是正确的。如果需要Q何其它设|,例如|络代理Q可以用提供的其它区域中的其中一个再ơ验证。通常Q如果验证失败,d储存库连接器应该会提供一条有用的消息。如果没有提供消息,则可以参考连接器的文档或?Mylyn FAQQ参?<a cmimpressionsent="1">参考资?/a> 节Q,对连接问题进行故障排除。还应注意,有些q接器要求在服务器上q行Ҏ的设|?/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如果您的团队用共享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这是ؓ了便于报?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="wwqwyec" class="smalltitle">查询储存?/span></a></p> <p>成功地添加了d储存库之后,可以通过 Task List 的弹单中?<strong>New Query</strong> 动作创徏查询来访问那个储存库上的d。例如,可以~写一个查询来讉K指定到我的电子邮地址的所?Bugzilla 报告Q如?7 所C: </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支持各种不同的组l样式,Mylyn ?Task List 可以灉|地设|和使用cd和查询。例如,如果您的团队对于理重复d和用里E碑QmilestoneQ标识每?Bugzilla 报告很}慎,那么可以讄与这些里E碑对应的查询,q用这些查询来跟踪目的进度。但是,Ҏ我与 Mylyn 团队和其?Mylyn 采用者的合作l验Q我Q如果与其他Z间有很多合作Q则Ҏ人员范围界设|查询,如果主要是完成分配给自己的Q务,则根据组件或产品范围讄查询。然后,可以使用 Task List ?<strong>Go Into</strong> 动作Q位于所有Q务容器的弹出菜单中)聚焦被分配的d或与一个特定组件相关的d。可以?Task Search (Ctrl+H) 功能随时更新里程的q度。具体而言Q徏议执行如下操作: </p> <ul> <li>为所有分配给您的d讄一个查询(例如 “All Mine”Q。如果有不同的品或lg范围Q则可以这个查询拆分成多个查询。通常Q一个查询应该就_了,它可以帮助您更容易地定下一步执行什么,因ؓ Task List 会按照处理顺序排列Q务?<br /> <br /> <li>如果与其他h密切协作Q那么可以ؓ他们中的每个|一个查询。然后,Mylyn 的传入(incomingQ通知可以帮助您对此进行响应,q排列与q些个体q行讨论的优先次序?<br /> <br /> <li>为已l报告、注释或者用 CC 处理q的Q例?“Products - Eclipse” ?“Products - Mozilla”Q所?bug 讄另一个查询。对于感兴趣的每个Q务储存库都执行这个操作,以确保可以收到您感兴的每个报告的更攚w知。通过排除qd讄的查询中所包括的组Ӟ可以避免查询之间的重复Q务?<br /> <br /> <li>如果?bug q行归类Q那么可以ؓ bug 收g帐戯|一个单独的查询Q以便监视即来临的报告?</li> </ul> <p>虽然讄查询旉常只包括打开?未决?未完成的dQ但是我强烈包括所有Q务。默认情况下 Mylyn 会过滤完成的dQƈ且ɘq些d很容易通过 Task List 端?<strong>Find:</strong> 框来索。如果查询只包括未完成的dQ那么一旦这些Q务完成之后,׃再会在查询下昄。注意,我的用于所?Mylyn d的查询目前返?1,420 个元素,其中大多数已l完成。通常Q这样大的结果集不会造成问题?</p> <p>查询中不昄的已l完成的d?Archive 中仍然会昄Q那里包含所有您工作q的d?/p> <p>度信息(例如里程)讄查询会很有用Q但是这也会造成 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 中双L询)q编辑所选择的倹{虽然对于不同的q接器查询参数的讄不尽相同Q但是查询参数设|都是用于反映连接器?Web UI 所提供的功能。有兛_建查询的详细信息Q请参阅q接器文档或服务?Web UI 文档?/p> <p>默认情况下,查询每隔 20 分钟自动q行同步Qƈ昄与查询参数匹配的CQ务。(可以通过 <strong>Preferences > Mylyn > Task List</strong> 更改q个旉。)当与 Web 断开q接Ӟ不需要 Mylyn 处于ȝ模式。但是,如果惛_闭同?—?例如Q假设您要长旉ȝ工作Q或者直接根据所使用的带宽付?—?那么可以q么做,Ҏ是在 Task List 视图菜单中切?<strong>Synchronize Automatically</strong> 讄。然后,可以通过工具栏上的按钮手动地同步所有Q务和查询Q或者通过弹出菜单或快捷键 F5 单独同步每个d或查询。必要时Q可以从弹出菜单中将一个Q务储存库|于ȝ模式。当储存库不可用Q需要长旉ȝ工作Ӟq样做很有用?/p> <p>对于可以通过 Web 览器访问的q接器,Mylyn 集成了用户已熟知?Web UIQ如?Mylyn 的富~辑功能不支持某些操作,您可能需要依赖于q个 Web UI。可以右键单MQ何Q务或查询Q以便用 Web 览器打开它(Eclipse 览器设|位?<strong>Window > Preferences > General > Web Browser</strong> 中)Q具有关?URL 的所有储存库d都可以通过 Task Editor 的工h或者Q务的弹出菜单上的 Open with Browser 动作打开。还可以用浏览器打开 Bugzilla 查询Q例如,假设您想它_帖C电子邮件中Q以便?Bugzilla Web UI 对它q行改进Q。然后,可以按照 New Query 向导的提C粘帖它Q从而用更新后?URL ?Task List 中创Z个新的查询?/p> <p><a name="N102D9"><span id="eakegms" class="smalltitle">搜烦d</span></a></p> <p>搜烦dcM于创建查询,但是它不结果存储在 Task List 中。?Ctrl+H ?Search 菜单Q?strong>Search > Task Search</strong>Q,选择感兴的储存库,输入搜烦条gQ然后单?<strong>Search</strong>。搜索视N之打开Q在该视图中可以打开与搜索匹配的dQ如?8 所C。要改进搜烦Q只需再次打开 Search 对话框,以恢复之前的搜烦条g。可以在 Search 视图中将搜烦l果从弹单{Ud一个查询中?</p> <br /> <a name="fig8"><strong>?8. d搜烦和结?/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="wyisuaq" class="smalltitle">创徏储存库Q?/span></a></p> <p>要创建新的储存库dQ可以在 Task List 工具栏或 <strong>File > New</strong> 菜单中选择相应的动作,如果有多个储存库Q那么要选择一个储存库。然后,q接器会要求输入d的其它属性,例如它的 Bugzilla lg。然后会打开一个新的编辑器Q在其中可以填入d的属性和描述。有些属性会自动选好Q例如,如果使用 Bugzilla q接器,则会自动选择操作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>技巧:右键单击一个查询节?/strong></a><br /> <p>作ؓ一U快h式,可以在一个查询节点上单击右键Q这样可以自动选择与查询对应的储存库和产品。通常Q当调用需要输入的功能ӞMylyn 会尝试用您的选择来预先选定相关输入?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>您可能要创徏的另一UQ务是有关 Mylyn 或用的另一个基?Eclipse 的工L bug 报告。通过自动d bugs.eclipse.org 储存库,以及d可以?Eclipse ?Error Log 视图?Help 菜单中访问的用于自动报告 bug 的动作,制作 bug 报告很容易。如果要查看惌q行报告的错误事Ӟ只需右键单击它,选择 <strong>Report as Bug</strong>。然后会打开 New Repository Task ~辑器,其中包括所有相关信息,例如栈跟t?/p> <p>׃q种通过一ơ单ȝ?bug 报告的方式可能导致大量重复的 bug 归档文gQ因?Mylyn q提供自动的重复?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="oycugck" class="smalltitle">~辑和同?/span></a></p> <p>在打开一?Bugzilla dӞ您将注意到在~辑器上有一?Bugzilla 和一?Planning 选项卡。储存库q接器提供一个富~辑器,例如q个 Bugzilla 选项卡,用于~辑在储存库上共享的d信息。而且QPlanning 选项卡提供用本CQ务创Z人注解的相同功能?/p> <p>当查?bug 上的注释Ӟ可以使用 Outline 视图在注释之间导航,但是未读注释的自动折叠意味着可以?Task Editor 中进行大多数D操作。对其它d和其它结构化元素Q例?Java 栈跟t元素)的引用被讄链接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。如果发现新的更改,或者当~辑器打开时他人更改了dQ那么编辑器的标题栏会显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>技巧:整理电子邮箱收g?/strong></a><br /> <p>׃使用?Mylyn 的后台同步功能,不需要依赖电子邮仉知p知道 Bugzilla 中最新的 bug 报告更改。只需讄可捕捉您感兴的所有Q务(例如复制的每个报告)的查询,可以收到简明的q入式箭头Ş式的通知Q这U通知不会使您的收件箱蝲。通过选择 <strong>Window > Preferences > Mylyn > Tasks</strong> 讄同步调度。通过右键单击树中的节点ƈ选择 <strong>Synchronize</strong>Q可以手动地同步查询和Q务?</p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>如果有其他h更改了储存库中的dQ例如添加一条新的注释,那么在屏q的右下角会弹出一个窗口显C更改,而Q务则使用<em>q入?/em> 头标记昄。如果打开dQ则被更改的部分会高亮显C,被添加的新的注释自动展开。如果本地副本和服务器上的副本都被更改,那么可以看到一个红色的冲突指示W,q提C军_H。如果看到冲H,那么应该单击d~辑器的 <strong>Synchronize</strong> 按钮Qƈ且提交您的更改,或者通过弹出菜单?<strong>Mark > Clear Outgoing</strong> 攑ּ您的更改Q以保d被同步?</p> <p><a name="N10378"><span id="eaegigu" class="smalltitle">附g</span></a></p> <p>可以用Q务编辑器?Attachments 区的 <strong>Add...</strong> 按钮附件添加到储存库中。还可以从工作区或窗口管理器文件或文本直接拖到~辑器的 Attachments 区。添加附件时会出C个向|通过该向导可以选择Ҏ剪切板内宏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="ysuwieu" class="atitle">d理和个?/span></a></p> <p>现在Q我讨论如何 Mylyn 成ؓ您的一个单独的d列表和收件箱Q以理工作周内所有相关的d。对于很多开发h员,要在一个给定的工作周内跟踪和调度的d的范围包括:</p> <ul> <li>为您正在开发的产品解决产品~陷q分析特? <li>由您的同事完成的dQ这些同事包括您的搭档、上司或属下 <li>针对您所使用的框架、API 和Y件的 bug 报告 <li>个h待办事项和提?</li> </ul> <p>所有Q务集成到一个视图中Q可以它们更易于管理,因ؓ只需查看一个位|就知道接下来该做什么。ؓ了进一步简化Q务管理,Mylyn 隐式包含了一些公认的d理最佛_践,例如调度和gqQ务,q且q包括了 XP 式开发的x性和适应性。Mylyn 的Q务管理工具您可以轻村֜适应一周内的Q务变化需求,而不会丢失对长期优先U的跟踪。除了将工作周的控制权交到您手上之外QMylyn 通过化用共享的储存库属性(例如里程和优先U)Q在 Eclipse 中执行所有操作,从而帮助您更好地集成团队实c?</p> <p><a name="N103A0"><span id="mmogaii" class="smalltitle">预定日期与到期日?/span></a></p> <p>Mylyn 提供两种用于调度的日期:<em>预定日期Qscheduled dateQ?/em> ?em>到期日期Qdue dateQ?/em>。(您可能已l注意到QQ务编辑器中显CZq两U日期)。预定日期可以帮助管理和优先排列自己的工作周Q而到期日期则对应于最后期限之cȝ固定事g?/p> <p>d的预定日期是Ҏ个h日程安排的可变日期,可以Ҏ优先U的变化而推q。它定义您计划开始处理Q务的旉。当d到达预定日期Ӟd变成U色Q以指示您应该开始处理它或者考虑推迟它的起始日期。定在今天执行的d会变成蓝色而不是红Ԍq且在工作日的最后进行安排,避免重新安排整个工作日的d?/p> <p>相反QQ务的到期日期是固定的日期QQ务必d成的日期。这个日期常怸外部的约束(例如最后期限)相关。如果用共享的d储存库或者日历工P到期日期会进行同步,以便使团队的其它成员可见。例如,如果 Bugzilla 的时间跟t功能被启用Q那么可以通过d~辑器的 Attributes Z?Time Tracking |?Bugzilla d的到期日期,团队中的其他成员可以看到q个日期Q还可以~辑它。到期日期的临近是通过d图标上的一个小钟指C的Q这个小钟在到期日期之前Ԍ在到期日期之后ؓU色?/p> <p><a name="N103B5"><span id="qqsugeu" class="smalltitle">聚焦工作周Q?/span></a></p> <p>׃ Mylyn 使得创徏和共享Q务变得如此容易,g您一旦开始用它QTask List 中很快就会装满数十个甚至数千个Q务。对?Mylyn 的早期用P包括我在内,实会发生这L事情。也许是因ؓ我是W一批用P目前我的 Task List 包含过 5,000 个Q务,其中有超q?1,000 个Q务尚未完成。乍一看来Q这g?Mylyn 减少而不是增加信息超载的目标有冲H。ؓ了解册个问题,Mylyn 提供了改q的功能来调度和推迟dQ用这些信息让 Task List 只显CZ您的工作周有关的d。新创徏的Q务定在创建日调度Qƈ且可以通过d~辑器的 Planning 区或上下文菜单快速地Q务推q到靠后的一个时间或日期?/p> <p>当Q务到N定日期之后,d和它的容器(例如一个查询)变成U色Q桌面上昄一个弹出窗口作为提醒。(和其?Mylyn 颜色和字体设|一P可以?<strong>Window > Preferences > General > Appearance > Colors and Fonts</strong> Q务设|ؓ高亮昄Q。当d被推q到来的日期执行时Q?strong>Window > Mylyn > Tasks > Scheduling</strong> 中设|的工作日v始时间决定Q务被调度的时间。通过更改工作日的l束旉Q可以确定被定ؓ那天调度的Q务在什么时间到期?/p> <p>Mylyn d理模型的关键是Z兴趣的分cdqoQ您可以通过 Task List 工具栏上?Focus on Workweek 动作启用该功能。聚焦模式导致只有与工作周相关的d才可以显C。这包括以下dQ?/p> <ul> <li>预定在本周执行或者超q预定日期的d <li>有新的更改和注释的储存库d </li> </ul> <p>如图 11 所C,d被着色和分类Q以帮助您快速确定下一步Q务:</p> <ul> <li>逾期d为红ԌL昄在列表的剙? <li>调度为在今天执行的Q务以蓝色H出昄? <li>调度为在本周靠后旉执行的Q务ؓ黑色? <li>今天完成的Q务ؓl色? <li>之前完成的Q务ؓ灰色?</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="kcegago" class="smalltitle">每天执行预定的Q?/span></a></p> <p>通过L地调度和推迟dQƈ视N制ؓ昄l定工作周内预定的Q务,Mylyn 帮助您全盘考虑优先U。ؓ了突出工作日QMylyn 用蓝色高亮显C所有在当天调度的Q务。由于在聚焦模式下工作时不大可能看到滚动条,因?Task List 保持展开Q所以您L知道应该考虑对什么作出响应或者下一步执行什么?/p> <p>考虑使用 Mylyn 的聚焦功能管理工作周的示例流E:</p> <ol> <li>在工作周的开始,d列表包含很多U色的Q务,q些d是之前定在本周执行或者推q到本周执行的?br /> <br /> <li>U色不是令h愉快的颜Ԍ所以您使用上下文菜单将每个d安排在今天或本周靠后某一天执行。当所有红色都消失之后Q定在今天执行的d变成了蓝Ԍ定在本周靠后旉执行的Q务变成黑ԌQ您可以查看q周的日E安排,认它符合实际,必要时推q或委托他h执行d?br /> <br /> <li>?Task List 被激zLQ可以将鼠标悬停?Task List 端附近的绿色进度条上(如图 11 所C)Q以查是否ؓ工作周安排了太多的Q务。如果有些Q务要比其它Q务花Ҏ长的旉Q那么可以打开d?Planning 区,调整预计旉Q这样可以相应地调整工作周进度条?br /> <br /> <li>在工作日的最后,所有已l完成的d变成了o人愉快的l色。然后,您可以检查剩下的蓝色或红色的dQ将它们推迟到明天或更靠后的日期?br /> <br /> <li>在第二天的开始,安排在这一天的所有Q务都Ԍ而所有逾期的Q务ؓU色。在安排工作日时Q您会将某些d推迟到本周靠后的日期Q因此可见的蓝色d表示您可以当天完成的所有Q务。Q务完成后变ؓl色?br /> <br /> <li>在工作周l束Ӟ滚动条应该会消失Q列表上的大多数d应该都变成绿艌Ӏ?</li> </ol> <p>׃d调度是Q务管理最重要的部分,Mylyn ?Task List 中提供了 <strong>Scheduled</strong> 表示Q它Ҏ到期日期而不是类别和查询来组lQ务。在聚焦模式下,q种表示会显C一周每天必d成的所有Q务。这对于q整周的工作负载很有用。它的另一个优Ҏ当您使用׃nd时可以避免分心,因ؓ不会昄有新注释但是未调度的d。要查新到来的Q务,需要切换回 <strong>Categorized</strong> 表示Q重新确定优先次序,然后再重新审视时间表。当不在聚焦模式下,可以使用 scheduled 表示来^衡未来工作周的Q务负?—?例如Q通过鼠标悬停在 Next Week 容器上检查有多少d被推q?/p> <p><a name="N10435"><span id="meisomi" class="smalltitle">创徏工作?/span></a></p> <p>到目前ؓ止,本文描述的所有功能都是将 Task List 当作一个统一的相关Q务的集合Q您可以灉|地调度这些Q务。此外,可以用查询来l织dQ还可以q一步嵌套子dQ前提是储存库连接器提供q种支持Q例?Bugzilla q接器就提供q种支持Q可以从 Task List 的视图菜单中启用该选项Q。但是,׃ Mylyn 2.0 ?em>工作集(working setsQ?/em>的支持,q可以对由完全不相关的Q务组成的集合q行处理。假设您在开发一个品和两个不同的开源项目。您可能x工作日的大多数时间花在最重要的品上Q但是还惌q其它项目。Mylyn 的工作集使您可以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>技巧:昄所有元?/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 视图被设|ؓ昄 <em>Window Working Set</em>Q默认设|)Q切?Mylyn 工作集可D Task List ?Eclipse 都只昄属于工作集的d和项目。例如,如果Z个开源项目设|了一个工作集Qƈ用下拉列表启用该功能Q那?Eclipse Task List、Package Explorer ?Problems 视图都只昄与那个项目相关的内容。Task List Find 只显C工作集中的匚wV甚臛_以通过 Search (Ctrl+H) 只查扑ַ作集中的内容Q如果工作区较大的话Q这样做很有用。换句话_整个 Eclipse 只显CZ您创建的工作集相关的东西。工作集可以减少工作区的凌ؕQƈ且可以避免用多个工作区。在 <a cmimpressionsent="1">W?2 部分</a> 中,您将看到 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="yicueuk" class="smalltitle">qo、分cd搜烦</span></a></p> <p>除了一些自动化功能外,Mylyn q提供手动分cdqo功能Q?/p> <ul> <li>通过视图菜单中的 <strong>Sort by</strong> ,Ҏ Priority 之类的属性分cR? <li>使用视图菜单中的 <strong>Filter Priority Lower Than</strong> ,Ҏ优先U进行过滤? <li>通过视图菜单qo所?Archive cd和完成的dQ徏议启用该功能Q在聚焦模式下会自动启用Q? <li>通过单击 <strong>Go Into</strong> qo特定cd或查询中的Q务(在聚焦模式下同样适用Q? <li>通过拖放操作手动分类Q将储存库Q务分cd各类别中?</li> </ul> <p>?13 昄了可用的手动 Task List qo器:</p> <br /> <a name="fig13"><strong>?13. 手动 Task List qo?/strong></a><br /> <img height="476" alt="" src="http://www.ibm.com/developerworks/cn/java/j-mylyn1/part1-filters.jpg" width="491" /> <br /> <p>手动搜烦和过滤会增加重复切换不同qo器和分类器的负担。对于默认模式下的操作不使用Q但是它们对于计划和l织d的确有用。注意,?Focus on Workweek zdӞ手动qo和分c设|被用Q可以通过关闭聚焦模式来恢复它们?/p> <p>当组l?Task List Ӟ可以通过 <strong>Move to Category</strong> 上下文菜单或者选择上下文菜单中?<strong>Remove from Category</strong> UdMd。除非通过上下文菜单显式地删除dQ否则即使Q务已l从查询中消失或者从cd中删除,仍然会显C在 Task List 中。被删除的Q务可以在 Archive 容器中找到。可以通过 Task List 端?Find 框方便地搜烦 Archive 或其它地方的旧Q务。单d双?<strong>Clear</strong> 按钮或按?Esc 键可以恢复之前可见的d。Archive 容器对于查看之前已解决且被注释的d也很有用Q因为创建查询的一U通用Ҏ是排除已解决dQ但是请参阅 <a cmimpressionsent="1">查询讄</a>Q了解有兌一做法的注意事)?/p> <p><a name="N104B3"><span id="ueqsusa" 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>技巧:׃nd数据</strong></a><br /> <p>当用多个工作区Ӟ可以不通过 Import 获得dQ而是通过选择 <strong>Window > Preferences > Mylyn > Tasks</strong>Q将d数据目录讄Z个共享的位置。如果将q个位置攑֜一个网l驱动器上,那么它应该可以通过一个快速的q接q行讉KQ因为它被频繁讉K。这是一个高U选项Q只那些手动理其工作区位置的用户用?/p> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p>聚焦模式使用得越频繁Q您?Task List 变得越有h倹{默认情况下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="gqiuwmk" class="atitle">W?1 部分l束?/span></a></p> <p>在这?Mylyn 使用指南的前半部分中Q我介绍?Mylyn 的Q务管理功能。我向您展示了这些功能如何支持个性化的Q务管理,以及它们如何?Bugzilla 之类的基?Web 的问题跟t器完全集成?Eclipse 中。我q对 Mylyn 理的典型的工作周或工作日作了概qͼq展C如何管?Task List?/p> <p>无论您感兴趣的Q务储存库有多,Task List 视图只提供一个单独的位置来从中管理所有工作。这使您可以工作日中的更多旉花在高效?Eclipse 中,而不必频J切换到外部的浏览器H口。这q意味着您可以获得基?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ؓ工作的组成部分,Mylyn 开始自动管理它们的上下文。本文的W?2 部分介绍 Mylyn 的上下文理功能Qƈ展示q些功能如何减少信息蝲Q以及如何多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><item><title> Eclipse加速插件KeepResident(?http://m.tkk7.com/conans/articles/209602.htmlCONANCONANFri, 20 Jun 2008 15:13:00 GMThttp://m.tkk7.com/conans/articles/209602.html

原理:利用两个 Windows API - SetProcessWorkingSetSize ?VirtualLock (适用?Windows q_)?br />
切换时果然快很多?br />
官方最D定在 100 MBQ最大?250 MB 左右?

 

-----------------------------------------------------------

 

下蝲地址Q?br /> http://suif.stanford.edu/pub/keepresident/keepresident-0.2.zip

安装ҎQ?br /> 解压到Eclipse安装目录Q它实际上会增加一个plugins目录下的子目录,然后重启EclipseQ对?.1版本的EclipseQ徏议?clean命o行参数启动,q样会明告诉Eclipseh

插g{的配置?br />
使用Q?br /> 在Eclipse 工作?/strong>的Windows->Preferences中会看到新增的KeepResident选项,在这里我们可以配|三个东东,最?strong class="kgb" style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline">工作集大、最大工作集大小、VirtualLockQ分别指定希望Windows分配lEclipse的最物理内存、最大物理内存和是否强制保持q部分内存。具体设|因异Q可以给大家参考我个h的配|:我的环境?strong class="kgb" style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline">Windows XP SP2Q?56MB内存Q三个选项分别是:80MB?28MB、选中。最使用情况来看Q运行很畅?br />
?/strong>原理Q?br /> 首先Q我们知道,Windows的内存实际上是物理内?虚拟内存Q必要的时候它会把应用E序占用的物理内存page到硬盘;其次Q对于普通的应用E序 Windows默认只会分配量物理内存Qƈ且这寚w要相对大量内存的Eclipse来说是不能接受的Q再ơ,一旦EclipseH口最化Q?Windows默认׃认ؓ它暂时不再被使用Q于是会它使用的物理内存挪出来l其他的q程使用Q这h们最化和再ơ打开׃感到严重的gq?KeepResident非常,其实是调用Windows的SetProcessWorkingSetSize()和VirtualLock()q两个API来实现指定Eclipseq行时内存分配的具体讄?/p>  

CONAN 2008-06-20 23:13 发表评论
]]>
eclipse 3.4 M5 最值得使用?个新功能http://m.tkk7.com/conans/articles/209587.htmlCONANCONANFri, 20 Jun 2008 15:02:00 GMThttp://m.tkk7.com/conans/articles/209587.html1, 动H口注释改进
你是否在eclipse里用过q样一个功能:
当鼠标移动到有javadoc注释的接口方法时Q?会出C个悬窗。框内显C接口Ҏ的详ljavadoc内容。(如果没有昄Q请调大eclipse.ini里的最大内存量-Xmx256mQ?

而当鼠标dҎ或移动到悬Q框上Ӟ悬Q框将消失。ؓ了不让悬框消失Q你需要按 F2 固定住框体,才可以l查看ƈ可用滚动条功能Q内Ҏ较多Q?

3.4 M5里一个新的改q,是Q可以设|,当出现悬框q移动到悬Q框上Ӟ 框仍旧保留,q增Z悬Q框的周边功能?





周边功能包括Q?
1Q可以直接点击doc里的元素q行定位?
2Q框体最下面新增Q蟩转到javadoc视图
3Q框体最下方新增Q定位到正确的申明处Q类似Declarations?

2, 查找/替换时的正则表达式新?“保留大小写格?#8221; 关键字?/strong>
当替换时Q?可以保留匚w到的文本原有的大写格式?



例如Q??"Test test= TEST" q个字符串中Q替?"test" ?"\CFoo", l果?"Foo foo= FOO" .

3, 新增全标{视图,卛_同一视图中显C?“problems, bookmarks and tasks”



4, java~辑器新?面包屑导航(很不错的功能Q不q会消耗一点资源)
首先Q这q是个实验性的功能?
你可以通过点击 Toggle Breadcrumb 按钮启用q一功能?
Q隶属于 java editor presentation l? 怎么用Q?右键点击上部D栏,选择 Commands 选项卡,如下?Q?





它的作用是:
1Q?可以快速定位到当前cȝ某一个方法,而不需要再?ctrl + 0 (昄当前cȝ所有方法,q可以进行定?



2Q?可以快速定位到同一包下的其他类?



3Q?可以定位到同一目下的其他包?



4Q?可以定位到其他文件夹?
5Q?可以定位到其他项目?

5Q?快速解决与快速援?Quick Fix and Quick Assist)

当鼠标移动到需要解决问题的代码行时Q?



?ctrl + 1 可以提示解决ҎQƈ实施快速解冟?





6, 增强了注释的格式?



7Q?错误日志视图Q可以快速查看日志配|?



8, 更清晰{换jar包到插g目
Z鼓励eclipse插g开发用P不要使用已经被嵌套在其他目里的jar包(其他目更改依赖或删除时Q会报错Q,提供了快速{换入口?



9Q?OSGI R4.1 Bundle-ActivationPolicy 支持
Zq一步统一 OSGI R4.1 规范Q?PDE支持 Bundle-ActivationPolicy ?
下图是,已l不再用的 Eclipse-LazyStart 替换?Bundle-ActivationPolicy ?

 

CONAN 2008-06-20 23:02 发表评论
]]>
eclipse快捷?/title><link>http://m.tkk7.com/conans/articles/209577.html</link><dc:creator>CONAN</dc:creator><author>CONAN</author><pubDate>Fri, 20 Jun 2008 14:56:00 GMT</pubDate><guid>http://m.tkk7.com/conans/articles/209577.html</guid><description><![CDATA[<table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>查找q替?/div> </td> <td valign="top" width="132"> <div>Ctrl+F</div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>查找上一?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+K</div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>查找下一?/div> </td> <td valign="top" width="132"> <div>Ctrl+K</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>撤销</div> </td> <td valign="top" width="132"> <div>Ctrl+Z</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>复制</div> </td> <td valign="top" width="132"> <div>Ctrl+C</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>恢复上一个选择</div> </td> <td valign="top" width="132"> <div>Alt+Shift+↓</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>剪切</div> </td> <td valign="top" width="132"> <div>Ctrl+X</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>快速修?/div> </td> <td valign="top" width="132"> <div>Ctrl1+1</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>内容辅助</div> </td> <td valign="top" width="132"> <div>Alt+/</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>全部选中</div> </td> <td valign="top" width="132"> <div>Ctrl+A</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>删除</div> </td> <td valign="top" width="132"> <div>Delete</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>上下文信?/div> </td> <td valign="top" width="132"> <div>Alt+Q?/div> <div>Alt+Shift+?</div> <div>Ctrl+Shift+Space</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>昄工具提示描述</div> </td> <td valign="top" width="132"> <div>F2</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>选择装元素</div> </td> <td valign="top" width="132"> <div>Alt+Shift+↑</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>选择上一个元?/div> </td> <td valign="top" width="132"> <div>Alt+Shift+←</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>选择下一个元?/div> </td> <td valign="top" width="132"> <div>Alt+Shift+→</div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>增量查找</div> </td> <td valign="top" width="132"> <div>Ctrl+J</div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>增量逆向查找</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+J</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>_脓</div> </td> <td valign="top" width="132"> <div>Ctrl+V</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>重做</div> </td> <td valign="top" width="132"> <div>Ctrl+Y</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">查看</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>攑֤</div> </td> <td valign="top" width="132"> <div>Ctrl+=</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>~小</div> </td> <td valign="top" width="132"> <div>Ctrl+-</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">H口</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>Ȁzȝ辑器</div> </td> <td valign="top" width="132"> <div>F12</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>切换~辑?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+W</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>上一个编辑器</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+F6</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>上一个视?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+F7</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>上一个透视?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+F8</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>下一个编辑器</div> </td> <td valign="top" width="132"> <div>Ctrl+F6</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>下一个视?/div> </td> <td valign="top" width="132"> <div>Ctrl+F7</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>下一个透视?/div> </td> <td valign="top" width="132"> <div>Ctrl+F8</div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>昄标尺上下文菜?/div> </td> <td valign="top" width="132"> <div>Ctrl+W</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>昄视图菜单</div> </td> <td valign="top" width="132"> <div>Ctrl+F10</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>昄pȝ菜单</div> </td> <td valign="top" width="132"> <div>Alt+-</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">D</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>打开l构</div> </td> <td valign="top" width="132"> <div>Ctrl+F3</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>打开cd</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+T</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>打开cd层次l构</div> </td> <td valign="top" width="132"> <div>F4</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>打开声明</div> </td> <td valign="top" width="132"> <div>F3</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>打开外部javadoc</div> </td> <td valign="top" width="132"> <div>Shift+F2</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>打开资源</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+R</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>后退历史记录</div> </td> <td valign="top" width="132"> <div>Alt+←</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>前进历史记录</div> </td> <td valign="top" width="132"> <div>Alt+→</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>上一?/div> </td> <td valign="top" width="132"> <div>Ctrl+,</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>下一?/div> </td> <td valign="top" width="132"> <div>Ctrl+.</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>昄大纲</div> </td> <td valign="top" width="132"> <div>Ctrl+O</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>在层ơ结构中打开cd</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+H</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>转至匚w的括?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+P</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>转至上一个编辑位|?/div> </td> <td valign="top" width="132"> <div>Ctrl+Q</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>转至上一个成?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+↑</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>转至下一个成?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+↓</div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>转至?/div> </td> <td valign="top" width="132"> <div>Ctrl+L</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">搜烦</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>出现在文件中</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+U</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>打开搜烦对话?/div> </td> <td valign="top" width="132"> <div>Ctrl+H</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>工作Z的声?/div> </td> <td valign="top" width="132"> <div>Ctrl+G</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>工作Z的引?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+G</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">文本~辑</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>改写切换</div> </td> <td valign="top" width="132"> <div>Insert</div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>上滚?/div> </td> <td valign="top" width="132"> <div>Ctrl+↑</div> </td> </tr> <tr> <td valign="top" width="115"> <div>文本~辑?/div> </td> <td valign="top" width="312"> <div>下滚?/div> </td> <td valign="top" width="132"> <div>Ctrl+↓</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">文g</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>保存</div> </td> <td valign="top" width="132"> <div>Ctrl+X </div> <div>Ctrl+S</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>打印</div> </td> <td valign="top" width="132"> <div>Ctrl+P</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>关闭</div> </td> <td valign="top" width="132"> <div>Ctrl+F4</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>全部保存</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+S</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>全部关闭</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+F4</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>属?/div> </td> <td valign="top" width="132"> <div>Alt+Enter</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>新徏</div> </td> <td valign="top" width="132"> <div>Ctrl+N</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">目</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>全部构徏</div> </td> <td valign="top" width="132"> <div>Ctrl+B</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">源代?/font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>格式?/div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+F</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>取消注释</div> </td> <td valign="top" width="132"> <div>Ctrl+\</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>注释</div> </td> <td valign="top" width="132"> <div>Ctrl+/</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>d导入</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+M</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>l织导入</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+O</div> </td> </tr> <tr> <td valign="top" width="115"> <div>Java~辑?/div> </td> <td valign="top" width="312"> <div>使用try/catch块来包围</div> </td> <td valign="top" width="132"> <div>未设|,太常用了Q所以在q里列出,自己讄?br /> 也可以用Ctrl+1自动修正?/div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">q行</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>单步q回</div> </td> <td valign="top" width="132"> <div>F7</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>单步跌</div> </td> <td valign="top" width="132"> <div>F6</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>单步跛_</div> </td> <td valign="top" width="132"> <div>F5</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>单步跛_选择</div> </td> <td valign="top" width="132"> <div>Ctrl+F5</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>调试上次启动</div> </td> <td valign="top" width="132"> <div>F11</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>l箋</div> </td> <td valign="top" width="132"> <div>F8</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>使用qo器单步执?/div> </td> <td valign="top" width="132"> <div>Shift+F5</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>d/去除断点</div> </td> <td valign="top" width="132"> <div>Ctrl+Shift+B</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>昄</div> </td> <td valign="top" width="132"> <div>Ctrl+D</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>q行上次启动</div> </td> <td valign="top" width="132"> <div>Ctrl+F11</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>q行臌</div> </td> <td valign="top" width="132"> <div>Ctrl+R</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>执行</div> </td> <td valign="top" width="132"> <div>Ctrl+U</div> </td> </tr> </tbody> </table> <div><font size="3"></font> </div> <div><font size="3">重构</font></div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td valign="top" width="115"> <div>作用?/div> </td> <td valign="top" width="312"> <div>功能</div> </td> <td valign="top" width="132"> <div>快捷?/div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>撤销重构</div> </td> <td valign="top" width="132"> <div>Alt+Shift+Z</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>抽取Ҏ</div> </td> <td valign="top" width="132"> <div>Alt+Shift+M</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>抽取局部变?/div> </td> <td valign="top" width="132"> <div>Alt+Shift+L</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>内联</div> </td> <td valign="top" width="132"> <div>Alt+Shift+I</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>Ud</div> </td> <td valign="top" width="132"> <div>Alt+Shift+V</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>重命?/div> </td> <td valign="top" width="132"> <div>Alt+Shift+R</div> </td> </tr> <tr> <td valign="top" width="115"> <div>全局</div> </td> <td valign="top" width="312"> <div>重做</div> </td> <td valign="top" width="132"> <div>Alt+Shift+Y</div> </td> </tr> </tbody> </table>   <img src ="http://m.tkk7.com/conans/aggbug/209577.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-20 22:56 <a href="http://m.tkk7.com/conans/articles/209577.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://zz1220.com" target="_blank">߾Ʒۿѹۿ</a>| <a href="http://www-333346.com" target="_blank">רAVվ</a>| <a href="http://wwwks2424.com" target="_blank">ĻmvֻѸ </a>| <a href="http://zkqzdq.com" target="_blank">޶Ƶ˵ӰԺ</a>| <a href="http://500308k.com" target="_blank">AƬƵ߹ۿ</a>| <a href="http://472849.com" target="_blank">޹Ʒþþ</a>| <a href="http://26cgw.com" target="_blank">Ѳһ</a>| <a href="http://kph37.com" target="_blank">޵av</a>| <a href="http://wangdei.com" target="_blank">߹ۿav</a>| <a href="http://ystchem.com" target="_blank">ܻƺ۵վ</a>| <a href="http://8fue.com" target="_blank">99ɫƷ88</a>| <a href="http://www-01313.com" target="_blank">˾Ƶ</a>| <a href="http://cc8n.com" target="_blank">GVGVͬ </a>| <a href="http://kimnote.com" target="_blank">ɫWWW߹ۿ</a>| <a href="http://biarn.com" target="_blank">þ99ƷƵ</a>| <a href="http://144446.com" target="_blank">þ޾ƷƷ </a>| <a href="http://770144.com" target="_blank">Ļþþһ</a>| <a href="http://52xdc.com" target="_blank">޶ɫۺɫž</a>| <a href="http://499k.com" target="_blank">޾ƷƵ</a>| <a href="http://haohaoshuo.com" target="_blank">Ƶ߹ۿ</a>| <a href="http://3333seav.com" target="_blank">ѹۿ߽Ƭ</a>| <a href="http://1515m.com" target="_blank">һ</a>| <a href="http://www-456446.com" target="_blank">ҹƵ</a>| <a href="http://yyfass.com" target="_blank">þĻƷѩ</a>| <a href="http://yuezhaoming.com" target="_blank">ԴѸ߲</a>| <a href="http://tiantangapp.com" target="_blank">ƵַѲ</a>| <a href="http://leeszewan.com" target="_blank">ĻСۺ</a>| <a href="http://sczssc.com" target="_blank">ŷƷպһҹҹ </a>| <a href="http://720880.com" target="_blank">ƷѵӰ</a>| <a href="http://128313.com" target="_blank">һaƵ</a>| <a href="http://zaideqin.com" target="_blank">һĻ</a>| <a href="http://av520av.com" target="_blank">Ƶרһ</a>| <a href="http://www-xg5777.com" target="_blank">99ƷƵ߹ۿѲ</a>| <a href="http://gxnnzk.com" target="_blank">ѹۿӰ</a>| <a href="http://zjtuhui.com" target="_blank">hƬ߲Ѹ</a>| <a href="http://yzddcpj.com" target="_blank">žۺVAѿ</a>| <a href="http://www-887234.com" target="_blank">VƬ߹ۿ</a>| <a href="http://bwgdbjb.com" target="_blank">þþþþëƬѿ</a>| <a href="http://ahzlgj.com" target="_blank">Ƶ߹ۿ</a>| <a href="http://haiwaizhuyun.com" target="_blank">þ۲ӰԺѿҹɫ</a>| <a href="http://yw835.com" target="_blank">hƵ߹ۿ</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>