从Eclipse Galileo中卸载Mylyn

28

我能否从Eclipse PDT中卸载Mylyn?它是预先安装的,我认为我不会使用它。因此,我想将所有额外的插件从我的eclipse副本中删除,因为我的IDE已经运行缓慢。


1
为什么要卸载它呢?我不认为它会使Eclipse变得太重。 - Bozho
9
@Bozho,我刚刚证明了一个“纯净”的Eclipse 4安装(最新版本)由于Mylyn中的错误而无法正常运行 - 团队中没有人使用Mylyn,它会严重拖慢四核16-24 GB内存的Eclipse,并且...它确实会导致项目崩溃。(重新安装Eclipse后,由于Mylyn的内部错误,始终无法启动) - Adam
5个回答

20

Mylyn FAQ中解释了卸载过程。

我们建议通过 Help → Software Updates → Manage Configuration对话框在Eclipse中卸载。如果尝试卸载时出现错误消息,则需要首先卸载使用Mylyn的依赖项。这些包括Subclipse Mylyn集成和Bugzilla Connector等内容。

您也可以手动卸载,方法是从eclipse/plugins和eclipse/features目录中删除所有Mylyn插件和特征,请确保删除所有插件,然后使用-clean选项重新启动Eclipse(例如通过将其插入到快捷方式或eclipse.ini文件中)。


最近版本的Eclipse可能不允许卸载Mylyn:请参见bug 327157

很抱歉听到您希望卸载Mylyn。没错,Eclipse提供的大多数软件包只有一个根特性,并且确实允许卸载单个组件。

我可以向您保证,如果未使用Mylyn,则其对Eclipse的影响微乎其微。如果按照以下步骤操作,则不会加载任何Mylyn插件:

  • 关闭任务列表视图,
  • 在“常规”→“启动和关闭”下禁用Mylyn Tasks UI和Mylyn Team UI

此外,您可以在“常规”→“功能”下通过禁用“任务”类别(并非所有Eclipse软件包都提供此选项)来删除Mylyn UI贡献。

或者,您可以使用默认不包括Mylyn的Eclipse包,例如SDK。Eclipse还提供了一个仅具有必需组件的裸RCP下载,可根据需要进行扩展。

这意味着要按照Dawid Drozd的文档进行手动卸载。


1
在Indigo中似乎不可能做到这一点。前往“帮助”>“关于Eclipse”>“安装详细信息”>“已安装软件”选项卡,对于任何你没有特别安装的内容,“卸载...”按钮都是禁用的。看起来你必须使用Mylin,无论你是否需要它。 - Amos M. Carpenter
@AmosM.Carpenter 确实……看起来https://bugs.eclipse.org/bugs/show_bug.cgi?id=327157提供了一些建议。 - VonC
谢谢,我已经尝试在启动时禁用了两个Mylin插件,但没有从“首选项>常规>功能”中删除其UI贡献,所以我一定会在周一尝试一下。 - Amos M. Carpenter

11

当未使用Mylyn时(即没有打开Mylyn视图且没有活动任务),它不应对性能产生任何影响。如果它导致您的性能问题,请提交错误报告,因为:

Mylyn团队认为Mylyn造成的任何速度或内存性能开销都是关键错误。请提交错误报告:http://eclipse.org/mylyn/support/

如果您想加快启动速度而又不想卸载Mylyn,因为在Eclipse中卸载插件可能会很麻烦,可以打开窗口-> 首选项-> 通用-> 启动和关闭并取消选中Mylyn功能。


2
关于Mylin不影响性能(注意是“Affect”而非“Effect”),除非打开了Mylin视图,但在我的情况下它仍然会启动(我从未使用过它,并且每当我设置新的工作区时都会关闭其任务列表),因为它似乎以某种方式钩入代码完成。偶尔当我的工作机器很忙时,代码完成会显示一个Mylin错误消息。感谢禁用启动时的提示。 - Amos M. Carpenter
2
我只能代表Eclipse Luna (4.4.1)说话,但是像建议的那样在启动时禁用Mylyn功能实际上并不能阻止它在启动时加载例如org.eclipse.mylyn.tasks.ui。那么它实际上是做了什么呢? - zb226

10

来源:http://blog.sarathonline.com/2012/05/eclipse-indigo-without-mylyn.html

对我来说效果很好。

#cd path-to-eclipse installation
#prep
 mkdir disabled disabled/features disabled/plugins

#remove mylyn
 mv plugins/*mylyn* disabled/plugins/
 mv features/*mylyn* disabled/features/

#remove cvs
 mv features/*cvs* disabled/features/
 mv plugins/*cvs* disabled/plugins/

#remove windows builder
 mv plugins/*.wb.* disabled/plugins/
 mv features/*.wb.* disabled/features/

#if svn is used, git may not be necessary; However, there is little harm keeping it
 mv features/*egit.* disabled/features/
 mv plugins/*jgit* disabled/plugins/
 mv plugins/*egit* disabled/plugins/

4

花了一点时间才开始做,但这里有一个脚本可以在Windows下启用/禁用Eclipse的插件/功能。要禁用Mylyn,请将脚本放在您的Eclipse主目录中并执行:

eclipse_pfswitch.bat disable .mylyn.

要再次启用它,请执行:

eclipse_pfswitch.bat enable .mylyn.

你当然可以对任意目标执行此操作,不仅限于Mylyn。该脚本会打印出移动的文件/目录。
一些注意事项:
  • 该脚本使用与Dawid Drozd's answer相同的方法-将不需要的内容移到Eclipse未知的文件夹中。这样,一切都可以轻松恢复。唯一的区别是我选择为目录名称使用.disabled后缀。
  • 我必须使用SUBST才能使用MOVE命令,这确实应该在这里使用。问题是一些Eclipse目录的名称非常长-例如org.eclipse.datatools.sqldevtools.schemaobjecteditor.feature_1.12.0.v201406061321-4218375LG5BJ93413,因此MOVE无法对它们进行操作,导致出现The filename or extension is too long错误(206)。
  • 默认替换驱动器字母是S:。如果您的系统使用了该字母,脚本将告诉您并退出。只需将subst_drive变量调整为另一个未使用的驱动器字母即可。
  • 注意如何指定目标。例如,如果要删除“Target Management”,则将tm指定为目标也将删除“Web Standard Tools”的某些与HTML相关的部分,因为tm显然也匹配html-因此请改用.tm.。相反,如果删除“Remote Systems Explorer”,请不要使用.rse.,而是使用.rse,否则您将错过一些部分。反正总是很容易回到先前的状态,所以随意尝试。

不再拖延,这就是脚本。它不太好看,但是嘿,它是批处理。

@ECHO OFF
SETLOCAL EnableDelayedExpansion
ECHO Eclipse plugin/feature switcher script for Windowze (p) 2015 zb226
ECHO Inspired by https://dev59.com/8XI-5IYBdhLWcg3weoJP#17614970
ECHO.

SET subst_drive=S:
IF EXIST %subst_drive%\ (
    ECHO ERROR: Choose another drive for substitution, '%subst_drive%' is in use
    GOTO :EOF
)

IF NOT EXIST plugins SET _check=1
IF NOT EXIST features SET _check=1
IF DEFINED _check (
    ECHO ERROR: This does not look like an Eclipse main directory
    GOTO :EOF
)

IF "%1" == "enable" SET _check=1
IF "%1" == "disable" SET _check=1
IF NOT DEFINED _check GOTO :usage
IF "%2" == "" GOTO :usage
SET mode=%1
SET target=%2

CALL :shove_it %mode% plugins *%target%*
CALL :shove_it %mode% features *%target%*
GOTO :EOF

:shove_it
SET _mode=%1
SET _type=%2
SET _mask=%3

IF "%_mode%" == "disable" (
    SET _source=%2
    SET _target=%2.disabled
    IF NOT EXIST !_target! MKDIR !_target!
) ELSE (
    SET _source=%2.disabled
    SET _target=%2
)

SUBST %subst_drive% %_target%
FOR /F %%A IN ( 'DIR /B /O:N %_source%\%_mask% 2^> nul' ) DO (
    ECHO !_mode:le=l!ing !_type:s=! %%A
    MOVE %_source%\%%A %subst_drive%\%%A > nul
)
SUBST /D %subst_drive%
GOTO :EOF

:usage
ECHO Usage:             %~nx0 enable^|disable [TARGET]
ECHO Examples:          %~nx0 disable .mylyn.
ECHO                    %~nx0 enable .mylyn.
ECHO Example targets:   .mylyn., .datatools., .tm., .cvs, .rse, .pde, .rcp, ...

2
不错的脚本,比我的答案更精确。+1 - VonC

2
在Eclipse Neon中,您可以通过“Eclipse安装详细信息”视图卸载Mylyn。只需选择“帮助”==><“安装详细信息”,选择要卸载的组件,然后单击“卸载...”。

Eclipse Installation Details View


我刚试了一下,但是在卸载后Mylyn视图仍然存在,所以我认为这种方法并不真正有效... - zb226
你重启了Eclipse吗? - herrtim
是的(在卸载操作之后建议的) 。现在进行了手动重启以进行重新测试。此外,Eclipse仍然在启动时加载所有Mylyn内容,如启动画面底部所示。 - zb226

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接