Что я могу увидеть в проекте Git/Mercurial в проекте Eclipse. Metadata?
У нас есть код для приложения RCP Eclipse в рабочей области Eclipse, содержащей несколько проектов Java. Мы используем Mercurial с простым .hgignore просто *.class(но та же проблема будет относиться к Git).
Даже небольшое изменение кода может привести к тому, что многие из файлов в. metadata будут изменены.
Я хотел бы исключить некоторые или все метаданные из управления версиями. Если мы полностью исключаем его, рабочее пространство теряется.
Кто-нибудь знает, что мы можем безопасно исключить? В качестве альтернативы, как мы можем его воссоздать, если мы переведем код на новый компьютер?
Ответы
Ответ 1
Файлы, о которых я лично знаю:
- version.ini(не очень интересно)
- .plugins/org.eclipse.jdt.core/variablesAndContainers.dat(переменные pathpath)
- .plugins/org.eclipse.core.resources/.projects/*/. location (проекты в рабочей области)
Где-то у меня есть рабочее пространство Eclipse, используемое для тестирования некоторых связанных с Eclipse инструментов, которые довольно сильно сокращены, но работает. Я посмотрю, смогу ли я его выкопать.
Ответ 2
GitHub поддерживает проект сообщества "gitignore", который каталогизирует предложенные файлы спецификаций для игнорирования для различных платформ, редакторов и языков: https://github.com/github/gitignore p >
Eclipse игнорируется здесь: https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore
(Если есть другие файлы, о которых они должны знать, сообщите им об этом!)
Ответ 3
Метаданные и рабочее пространство
Я бы никогда не обменивался папкой .metadata
. Фактически, если у вас нет определенной причины, я бы даже не разделил папку рабочего пространства, но вместо этого разделил каждый проект отдельно с помощью git. Таким образом, папка .metadata
всегда будет находиться в родительской папке вашего репозитория git, и вам не нужно думать о том, нужно ли вообще ее игнорировать:
|-- workspace/
| \-- .metadata/
| |-- yourProjectOne/
| | \-- .git/
| | |-- .project
| | |-- src/
| | |-- ...
| |-- yourProjectTwo/
| | \-- .git/
| | |-- .project/
| | |-- src/
| | |-- ...
Конкретный проект
Вероятно, вы всегда должны делиться файлами .project
и никогда .settings/
. .classpath
может зависеть от вашей среды, но я бы также не предложил поделиться ею, потому что это может вызвать конфликты (например, если один пользователь использует openjdk, а другой использует sun-jdk. .settings
содержит настройки и настройки для eclipse и многое изменится, поэтому он не должен быть общим. Если вы правильно импортируете проект после клонирования его из git, то у вас также не будет проблем.
В документации eclipse указано следующее о файле .project
:
Цель этого файла - сделать самоописание проекта, поэтому что проект, который зашифрован или выпущен на сервер, может быть правильно воссоздан в другой рабочей области.
и
Если новый проект создается в месте, которое содержит файл описания проекта, содержимое этого файла описания будет в качестве описания проекта. Исключением является то, что имя проекта в файле будет проигнорировано, если оно не совпадает с именем создаваемого проекта. Если файл описания на диске недействительно, создание проекта не будет выполнено.
Я также предлагаю использовать Maven, так как это сэкономит вам массу проблем с управлением зависимостями и .classpath
Maven
Основное отличие проекта Maven заключается в том, что вы можете импортировать проект как Maven → "Существующие проекты Maven" и, следовательно, нужно только делиться файлами pom.xml и .project
в git. Затем Eclipse автоматически создаст файлы .classpath, .settings/
. Таким образом, очевидно, вам не нужно делиться ими. Если что-то изменится в pom.xml, вы просто запустите Maven → "Обновить конфигурацию проекта" и Maven → "Обновить зависимости".
Без Maven
Вы должны делиться файлом .project
, а не папкой .settings/
. Вы можете согласиться на использование .classpath, но это может привести к конфликтам, как описано выше. Я бы посоветовал не делиться им. Для импорта проекта используйте следующий метод:
После того, как вы клонировали репозиторий git, вы можете просто использовать "Импорт" - "Существующий проект из рабочей области". eclipse будет чтить файл .project
, но воссоздает файлы .classpath
и .settings/
. После импорта вам нужно будет настроить путь к классам вручную из Eclipse (и каждый раз ваша команда хочет использовать другую библиотеку).
Если вы не делитесь файлом .project, тогда невозможно импортировать проект с помощью Eclipse. Сначала вам нужно будет создать новый проект с помощью мастера проекта, а затем вы можете выбрать импорт "General- > File System", это скопирует все файлы в ваше рабочее пространство. Это, вероятно, не то, что вы хотите, потому что это означает, что вы не можете клонировать репозиторий git в рабочую область, вы должны клонировать его где-то в другом месте, а затем импортировать из него. Поэтому вы всегда должны делиться файлом .project.
Пожалуйста, оставьте оценку, если у вас есть предложения по этому объяснению или если вы не согласны с этим. Я надеюсь, что это поможет тому или иному.
Ответ 4
Метаданные рабочей области действительно не должны храниться в контроле источника. Базовая конфигурация рабочего пространства может быть разделена с помощью командного проекта .
Ответ 5
Я постоянно сохраняю .project и .classpath, они не только безопасны для git, но и полезны.
.class и .settings находятся в моем gitignore. Они генерируются и соответствуют конкретным лицам.