Что проект Eclipse.метаданные можно ли безопасно игнорировать в Git / Mercurial?
У нас есть код для приложения Eclipse RCP в рабочей области Eclipse, содержащей несколько проектов Java. Мы используем Mercurial с простым .hgignore just *.класс (но та же проблема будет относиться к Git).
даже небольшое изменение кода может привести ко многим файлам .метаданные меняются.
Я хотел бы исключить некоторые или все.метаданные из системы управления версиями. Если мы исключим его полностью, рабочее пространство будет потеряно.
тут кто-нибудь знает, что мы можем исключить? В качестве альтернативы, как мы можем воссоздать его, если мы вытащим код на новый компьютер?
5 ответов
файлы, о которых я лично знаю:
- версия.Ини (не очень интересно)
- .Плагины/орг.затмение.JDT, предназначенным.core / variablesAndContainers.dat (переменные пути к классам)
- .Плагины/орг.затмение.ядро.ресурсы./проекты./*/расположение (проекты в рабочей области)
где-то у меня есть рабочее пространство Eclipse, используемое для тестирования некоторых связанных с Eclipse инструментов, которые довольно сильно сокращены, но работают. Посмотрим, смогу ли я его откопать.
GitHub поддерживает проект сообщества "gitignore", который каталоги предложили filespecs для игнорирует для различных платформ, редакторов и языков:https://github.com/github/gitignore
Eclipse игнорирует здесь:https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore
(Если есть другие спецификации, что они должны знать, пусть они знают!)
метаданные и рабочее пространство
я бы никогда не разделил .metadata
папка. На самом деле, если у вас нет конкретной причины, я бы даже не делился папкой рабочей области, а вместо этого делился каждым проектом отдельно с git. Таким образом,.metadata
папка всегда будет находиться в родительской папке вашего репозитория git, и вам не нужно думать о том, нужно ли ее игнорировать:
|-- workspace/
| \-- .metadata/
| |-- yourProjectOne/
| | \-- .git/
| | |-- .project
| | |-- src/
| | |-- ...
| |-- yourProjectTwo/
| | \-- .git/
| | |-- .project/
| | |-- src/
| | |-- ...
Конкретные
вы вероятно, всегда следует делиться и не .settings/
файлы. The .classpath
может зависеть от вашей среды, но я бы не предложил делиться ею, потому что это может вызвать конфликты (например, если один пользователь использует openjdk, а другой использует sun-jdk. The .settings
содержит настройки и настройки для eclipse и многое меняет, поэтому он не должен быть общим. Если вы правильно импортируете проект после его клонирования из git, у вас также не будет никаких проблем.
в документация eclipse говорится о :
цель этого файла-сделать проект самоописанием, так что проект, который заархивирован или выпущен на сервер, может быть правильно воссоздано в другом рабочем пространстве.
и:
если новый проект создается в месте, содержащем существующий файл описания проекта, содержимое этого файла описания будет почитайте как описание проекта. Одним исключением является то, что имя проекта в файле будет проигнорировано, если оно не соответствует имени о создаваемом проекте. Если файл описания на диске неверно, создание проекта завершится ошибкой.
я также предлагаю использовать Maven, так как это избавит вас от многих проблем с управлением зависимостями.путь к классу
Maven
основное отличие от Maven проект заключается в том, что вы можете импортировать проект как Maven->"существующие проекты Maven" и, таким образом, только нужно поделиться pom.xml и .project
файл в git. Затем Eclipse создаст .classpath, .settings/
файлы для вас автоматически. Таким образом, очевидно, вам не нужно делиться ими. Если что-то изменится в pom.xml вы просто запускаете Maven - > "Обновить конфигурацию проекта"и Maven->"обновить зависимости".
Без Maven
вы должны поделиться и не . Вы можете рассматривать поделиться .classpath, но это может привести к конфликтам, как описано выше. Я бы тоже предложил не делиться. Используйте метод ниже для импорта проекта:
после клонирования репозитория git вы можете просто использовать Import - > "существующий проект из рабочей области" eclipse будет соблюдать .project
файл, но воссоздает .classpath
и .settings/
файлы. После импорта вам нужно будет вручную настроить путь к классам из Eclipse (и каждый раз ваша команда хочет использовать другую библиотеку).
если вы не разделяете .файл проекта, то невозможно импортировать проект с Eclipse. Сначала вам нужно будет создать новый проект с помощью мастера проектов, а затем вы можете выбрать импорт "общие - >файловая система", это скопирует все файлы в рабочее пространство. Это, вероятно, не то, что вы хотите, потому что это означает, что вы не можете клонировать репозиторий git в рабочую область, вы должны клонировать его где-то еще, а затем импортировать его оттуда. Поэтому вы всегда должны делиться .файл проекта.
пожалуйста, оставьте отзыв, если у вас есть предложения к этому объяснению или если вы не согласны с ним. Надеюсь, это поможет тому или другому.
метаданные рабочей области действительно не должны храниться в системе управления версиями. Базовая конфигурация рабочей области может быть разделена через проект Команда.
Я обычно держу .проект и. classpath, они не только безопасны для git, но и полезны.
.класс и. настройки находятся в моем gitignore. Они генерируются и person specific соответственно.