Ответ 1
Введение
Formatter, Code Templates и т.д. могут быть сохранены в качестве конкретных для проекта настроек в папке .settings/
. Вам необязательно повторно импортировать Formatter в рабочее пространство.
Вы можете использовать специальные настройки проекта в сочетании с svn:externals
для "вставки" форматирования, шаблонов кода и т.д. в ваши проекты.
Иногда полезно создать рабочую копию, сделанную из ряд различных проверок. Например, вы можете захотеть подкаталоги из разных мест в репозитории или возможно, из разных репозиториев.
Проекты
- У нас есть проект java с именем
com.xyz.codeconventions
, где мы добавили специфический для проекта форматтер и шаблоны кода. Этот проект находится под контролем версий. - Для всех других проектов мы определяем свойство
svn:externals
для "вставки" папки.settings/
из проектаcom.xyz.codeconventions
(Это папка, в которой хранятся конкретные данные проекта) - Если вы хотите изменить форматтер, вы можете отредактировать проект
com.xyz.codeconventions
и использоватьsvn commit
для отправки изменений. Команда будетsvn update
для всех проектов, чтобы получить последнюю версию форматирования кода.
Конфигурация
Для всех проектов, которые должны использовать этот форматтер, вы должны определить свойство svn: externals.
Пример для com.xyz.project1:
key value ---- ------ svn:externals http://path/to/com.xyz.codeconventions/.settings .settings
В Eclipse (в моем случае Subversive) вы можете добавить специальные свойства svn с помощью Team -> Set property...
.
Макет репозитория
Структура хранилища в нашем случае выглядит следующим образом:
<root> | +-- com.xyz.project1 # (svn:externals -> <root>/codeconventions/.settings .settings) | | | +-- src | +-- <...> +-- com.xyz.project2 # (svn:externals -> <root>/codeconventions/.settings .settings) | | | +-- src | +-- <...> +-- com.xyz.codeconventions | +-- .settings # (this folder will get "injected" in project1 and project2) | +-- org.eclipse.jdt.core.prefs +-- org.eclipse.jdt.ui.prefs
Дополнительные комментарии/ограничения
- Этот подход предназначен только для пользователей
svn
, но если вы используетеgit
, то есть что-то похожее на svn: externals с именем Submodules. - Убедитесь, что в проектах1 и project2 нет
.settings/
-папка, потому что сsvn:externals
невозможно перезаписать существующие файлы. - Если у вас есть java-проекты, которым нужны совершенно разные форматы или разные файлы в папке
.settings/
, этот подход, вероятно, не тот, который вы ищете. Наши проекты всегда имеют те же файлы.settings
.
Источники