В Eclipse предусмотрено несколько стратегий многопользовательской установки. Каждая стратегия удовлетворяет определенному сценарию. Все стратегии описаны в этом документе. Документ предназначен для разработчиков, настраивающих продукты на основе Eclipse для распространения; системных администраторов, настраивающих продукты на основе Eclipse для работы по сети; а также для разработчиков, заинтересованных в создании модулей, которые являются лояльными в этих настройках.
Дата последнего исправления: 17 июня 2005 г.
Как сказано в статье Рабочие опции Eclipse, существуют различные расположения, которые важны в контексте развертывания Eclipse в многопользовательской настройке:
Перед первым запуском Eclipse область конфигурации изначально представляет собой пустой каталог. Eclipse и другие модули по мере работы наполняют это расположение. Большая часть мета-информации времени выполнения Eclipse (например, зависимости модулей, реестр расширений) записывается при завершении работы первого сеанса. Если набор установленных модулей не изменился, то во время последующих сеансов данные не записываются. Мы говорим, что конфигурация инициализируется. В процессе инициализации можно даже запретить для записи область конфигурации. Это может потребоваться в сценариях с общими конфигурациями (далее об этом будет сказано более подробно).
Параметр командной строки -initialize
позволяет инициализировать область конфигурации без необходимости запускать приложение Eclipse. Процедура инициализации вызывает создание мета-информации, которая записывается в расположение конфигурации во время первого сеанса Eclipse. Однако, в области конфигурации есть другие файлы, которые создаются только при необходимости. Например:
Platform.asLocalURL(URL)
. В результате, если URL указывает на файл внутри JAR, то этот файл будет извлечен в файловую систему в область конфигурации. Как только он будет извлечен, его смогут найти последующие вызовы Platform.asLocalURL()
, поэтому данный файл дополнительно извлекать не потребуется. Аналогичный (на самом деле, первоначальный) сценарий, в котором применяется Platform.asLocalURL
, приводит к тому же результату и связан с проверкой локальной доступностью удаленных данных (например, файл, доступный через URL с http). В этих случаях (а также в случаях использования модулей других фирм), процедуры инициализации недостаточно для полной инициализации области конфигурации. По-прежнему необходимо записывать данные в область конфигурации, хотя эта необходимость постепенно исчезает, так как посещаются все пути выполнения в приложении, которое создает файлы в области конфигурации. Только после этого можно сказать, что область конфигурации инициализирована полностью, и для запуска Eclipse больше никогда не потребуется делать ее доступной для записи.
На самом деле, это сценарий для одного пользователя. Установка Eclipse применяется одним пользователем, который обладает полными правами доступа. Расположение области конфигурации по умолчанию определяется в каталог конфигурации в расположении установки.
Процедура настройки этого сценария состоит в том, чтобы просто убедиться, что пользователь обладает полными правами доступа к расположению установки.
По этому сценарию одна область установки является общей для многих пользователей. Каталог "configuration" в области установки является домашним только для файла config.ini в том виде, в каком он поставляется с продуктом (не инициализированный). У каждого пользователя есть свое локальное расположение конфигурации.
Для настройки этого сценария необходимо сделать область установки недоступной для записи обычным пользователям. В результате, когда пользователи будут запускать Eclipse, область конфигурации будет по умолчанию применяться в домашнем каталоге пользователя. Если этого не сделать, то все пользователи будут завершать работу в одном и том же расположении области конфигурации, что недопустимо.
Здесь общей для пользователей является не только область установки, но и главная область конфигурации . При этом у пользователей по умолчанию остаются собственные доступные для записи области конфигурации. Частная область конфигурации пользователя выводится каскадом в главную конфигурацию и не содержит каких-либо важных данных, если главная конфигурация был полностью инициализирована и не изменился набор установленных модулей.
В этом сценарии системный администратор должен инициализировать главную конфигурацию (как правило, в расположении установки), а также убедиться, что области установки и конфигурации доступны пользователям только для чтения. Когда пользователи запускают продукт на основе Eclipse из общего расположения установки, то автоматически вычисляется и инициализируется локальная область конфигурации, поскольку у них нет прав доступа к области конфигурации в области установки.
Чем полнее инициализирована общая конфигурация, тем меньше необходимость в создании файлов в локальной конфигурации.
По умолчанию задано следующее расположение частной области конфигурации:
<пользовательский-домашний-каталог>/.eclipse/<ид-продукта>_<версия-продукта>/configuration
Пользовательский домашний каталог определяется системным свойством системы Java user.home
.
ИД продукта и версия извлекаются из заменителя файла продукта .eclipseproduct
в установке Eclipse.
Область конфигурации, отличную от заданной по умолчанию, можно установить с помощью системного свойства osgi.configuration.area
. Это свойство может задавать конечный пользователь, но удобнее задавать его либо в файле launcher .ini, либо в файле config.ini, который находится в расположении основной конфигурации.
Модули можно устанавливать в общую конфигурацию и удалять из нее. Пользователи могут увидеть внесенные изменения при следующем запуске Eclipse. Необходимо убедиться, что пользователи, применяющие общую конфигурацию в качестве основной, в данный момент не работают с Eclipse.
Пользователи могут изменять свои локальные области конфигурации путем установки дополнительных модулей. Это не изменяет общую конфигурацию, таким образом изменения в локальной конфигурации не видны другим пользователям. Обратите внимание, что модули, настроенные для общей конфигурации, нельзя удалить. Если вы их удалите, то они будут установлены заново при следующем запуске платформы.