2014-09-23 5 views
1

У меня есть большое количество машин, для которых на них должен быть установлен Eclipse, и плагины, которые должны быть установлены/настроены/управляемы для них («стандартный» набор плагинов и конфигураций был определены). Есть ли способ, которым это может быть написано сценарием/автоматизировано, так как при добавлении новых плагинов и изменении конфигураций я могу запустить этот скрипт, и он обновит машину?Автоматизация установки и конфигурирования плагинов Eclipse

Благодаря

Edit: То, что я сделал в конце концов должен был захватить все утвержденные в настоящее время версии плагинов и затмения, и хранить их в систему управления версиями. Затем я создал скрипт ant, который может установить eclipse и разместить плагины в нужном месте. Бит неуклюжий, но работает для нас. Спасибо оба ответа, они были полезны :)

ответ

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 (Window-> Preferences-> Install/Update-> Automatic Updates-> Автоматически найти новые обновления и уведомить меня). Он работает даже с сетевыми дисками, но я бы предложил создать собственный сайт для обновления, его очень легко настроить. Сетевые пути имеют недостаток в фиксированном имени файла, вы должны поместить обновление своего плагина с точно таким же именем и в том же месте.

1

Простой способ сделать это - создать собственный набор eclipse с установленным вашим стандартным набором плагинов, а затем скопировать пакет на каждую машину.

Смежные вопросы