自动安装和配置Eclipse插件

时间:2014-09-23 13:31:47

标签: eclipse eclipse-plugin automation

我有大量需要安装Eclipse的机器,以及要为它们安装/配置/管理的插件(已经定义了一组“标准”插件和配置)。有没有一种方法可以编写脚本/自动化,以便在添加新插件和更改配置时,我可以运行此脚本并更新机器?

由于

编辑: 我最终做的是获取所有当前批准的插件版本和eclipse,并将它们存储在源代码管理中。然后我创建了一个可以安装eclipse并将插件放在正确位置的ant脚本。有点笨拙,但对我们有用。感谢这两个答案,他们很有帮助:)

2 个答案:

答案 0 :(得分:1)

一种简单的方法是创建一个安装了“标准”插件集的自定义eclipse包,然后在每台计算机上复制该包。

答案 1 :(得分:1)

您始终可以编写一个安装/更新/卸载插件/插件集的脚本。以下是安装和卸载一组功能的脚本示例。此版本仅使用标准Windows命令。

set plugins_list_to_uninstall=my.plugin.id1 my.plugin.id2
set uninstalljoinedpluginslist=
for %%i in (!plugins_list_to_uninstall!) do (
    set uninstalljoinedpluginslist=%%i.feature.group,!uninstalljoinedpluginslist!
)

set plugins_list_to_install=my.plugin.id3 my.plugin.id4
set installjoinedpluginslist=
for %%i in (!plugins_list_to_install!) do (
    set installjoinedpluginslist=%%i.feature.group,!installjoinedpluginslist!
)

:: extract eclipse.p2.profile from config.ini
set profile=SDKProfile
if exist .\configuration\config.ini (
    for /f "tokens=1* delims==" %%i in ('find "eclipse.p2.profile" .\configuration\config.ini') do (
        set profile=%%j
    )
    echo Profile is detected as !profile!
)

:: then extract eclipse launcher version
if exist .\plugins\org.eclipse.equinox.launcher_*.jar (
    for /f %%a in ('dir /b/a-d .\plugins\org.eclipse.equinox.launcher_*.jar') do (
        for /f "tokens=1* delims=_" %%i in ("%%~Na") do (
            set launchver=%%j
        )
    )
    echo Eclipse launcher version is !launchver!
) else (
    set launchver=0
    echo Eclipse launcher is not detected. Is it old eclipse 3.2- ?
    goto :filecleanup
)

echo Asking Eclispe to uninstall !uninstalljoinedpluginslist!:
call java -jar ./plugins/org.eclipse.equinox.launcher_!launchver!.jar -application org.eclipse.equinox.p2.director -uninstallIU !uninstalljoinedpluginslist!

:: this should remove files physically for eclipse 3.6+ versions
call java -jar ./plugins/org.eclipse.equinox.launcher_!launchver!.jar -application org.eclipse.equinox.p2.garbagecollector.application -profile !profile!

echo Asking Eclispe to install !installjoinedpluginslist!:
call java -jar ./plugins/org.eclipse.equinox.launcher_!launchver!.jar -application org.eclipse.equinox.p2.director -installIU !installjoinedpluginslist!

有关详细信息,请参阅p2.director帮助:http://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/p2_director.html

另一种选择是准备一个已编译的eclipse分发版,其中包含所有已安装的插件,如前所述。但是,您可以进一步从系统上的网络驱动器安装所有必需的插件。或者(需要更多努力),您可以在网络中的任何Web服务器上部署的自定义更新站点。诀窍是在准备好的Eclipse实例中启用自动更新(Window-> Preferences-> Install / Update-> Automatic Updates->自动查找新更新并通知我)。它甚至适用于网络驱动器,但我建议您使用自定义更新站点,它非常容易配置。网络路径的缺点是文件名固定,您必须将插件更新的名称完全相同并放在同一位置。