Вы действительно хотите сохранить в управлении версиями любые портативные файлы ,
установки значение:
Любой файл, который не имеет никакого полного пути в нем.
, Который включает:
Эмпирическое правило для меня:
необходимо быть в состоянии загрузить проект в рабочую область и иметь в нем все, что необходимо правильно настроить его в IDE и начать в минутах.
Никакая дополнительная документация, страницы Wiki для чтения или что нет.
Загрузка это, настраивает его, пойти.
. проект и .classpath файлы да. Мы однако не сохраняем наши настройки IDE в управлении версиями. Существуют некоторые плагины, которые не делают хорошего задания сохраняющихся настроек, и мы нашли, что некоторые настройки не были очень портативными от одной dev машины до следующего. Так, у нас вместо этого есть страница Wiki, которая выделяет шаги, требуемые для разработчика устанавливать их IDE.
Это то, что я считаю сгенерированными файлами, и как таковой, я никогда не размещаю их при управлении версиями. Они могут отличаться с машины на машину и разработчика разработчику, например, когда людям установили различные плагины Eclipse.
Вместо этого я использую инструмент сборки (Знаток), который может генерировать начальные версии этих файлов, когда Вы делаете новый контроль.
Я порван между двумя опциями здесь.
С одной стороны, я думаю, что все должны быть свободны использовать набор инструментов разработки, они являются самыми продуктивными с, пока все исходные артефакты хранятся в управлении версиями, и сценарий сборки (скажите, что МУРАВЕЙ или Знаток) гарантирует соответствие стандартов путем определения точно, который JDK использовать, какой, версии которого сторонние библиотеки зависеть от, осуществляя проверки стиля (например, checkstyle) и рабочие модульные тесты и т.д.
, С другой стороны, я думаю, столько людей использует те же инструменты (например, Eclipse) и часто намного лучше иметь некоторые вещи, стандартизированные во время проектирования вместо времени изготовления - например, Checkstyle намного более полезен как плагин Eclipse, чем как МУРАВЕЙ или задача Знатока - что лучше стандартизировать на съемочной площадке средств разработки и единого набора плагинов.
я работал над проектом, где все использовали точно тот же JDK, ту же версию Знатока, ту же версию Eclipse, тот же набор плагинов Eclipse и те же конфигурационные файлы (например, профили Checkstyle, правила средства форматирования кода и т.д.). Все они были сохранены в управлении исходным кодом - .project, .classpath и все в .settings папке. Это сделало жизнь действительно легкой во время начальных фаз проекта, когда люди постоянно настраивали зависимости или процесс сборки. Это также помогло очень при добавлении новых начинающих к проекту.
В итоге, я думаю, что, если нет слишком многих возможностей религиозной войны, необходимо стандартизировать на основном наборе, разрабатывают инструменты и плагины и гарантируют, чтобы соответствие версии в сценариях сборки (например, путем явного определения версии Java).I не думало, что существует много преимущества для хранения JDK и установки Eclipse в управлении исходным кодом. Все остальное, что не является полученным артефактом - включая Ваши файлы проекта, конфигурацию и сменные предпочтения (особенно средство форматирования кода и правила стиля) - должно войти в управление исходным кодом.
P.S. при использовании Знатока существует аргумент в пользу того, чтобы сказать, что .project и .classpath файлы являются полученными артефактами. Это только верно при генерации их каждый раз, когда Вы делаете сборку, и если Вы никогда не должны были настраивать их вручную (или непреднамеренно изменили их путем изменения некоторых предпочтений) после генерации их от АНГЛИЧАНИНА
Нет, потому что я только файлы управления версиями, которые необходимы для создания программного обеспечения. Кроме того, у отдельных разработчиков могут быть свои собственные определенные для проекта настройки.
Нет, я - тяжелое Знаток пользователь и использую Q для плагина Eclipse, который создает и сохраняет .project и .classpath обновленными. Для других вещей, таких как настройки для плагинов я обычно поддерживаю README или страницу Wiki об этом.
Также те я работал с этим, предпочитают, чтобы другие IDE просто использовали плагины Знатока для генерации файлов, должен был сохранить их IDE (и они) счастливый.
Это - все мнение, я предполагаю - но лучшие практики за эти годы указывают, что файлы, характерные для данного IDE, не должны храниться в управлении исходным кодом, если Ваша вся организация не стандартизирована на одном IDE, и у Вас никогда нет намерения переключения.
Так или иначе, Вы определенно не хотите пользовательские сохраненные настройки - и .project может содержать настройки, которые являются действительно конкретным разработчиком.
я рекомендую использовать что-то как Знаток или Муравей как стандартизированная система сборки. Любой разработчик мог настроить путь к классу в их IDE через несколько секунд.
Да, за исключением .settings папки. Фиксация других файлов работает хорошо на нас. Существует подобный вопрос здесь .
Кажется, что эти файлы проекта могут изменяться со временем, поскольку Вы работаете над проектом так да, я размещаю их при управлении версиями.
Мы используем IntelliJ IDEA и держим ".sample" версии проекта (.ipr) и файлы модулей (.iml) под контролем версий.
Немного важнее совместное использование и повторное использование , чем управление версиями, ИМХО. Но если вы собираетесь поделиться этими конфигурациями, что может быть лучше для их размещения, чем репозиторий, рядом со всем остальным.
Некоторые преимущества общих и версионных файлов проекта:
Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: что такое «источник» и каталоги "test source"; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)
Я согласен с этим ответом , в котором говорится:
Вы должны иметь возможность загрузить проект но, глядя на команду в целом, было много дублированных усилий.
Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: каковы каталоги «исходный код» и «исходный код тестирования»; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)
Я согласен с этим ответом , в котором говорится:
Вы должны иметь возможность загрузить проект но, глядя на команду в целом, было много дублированных усилий.
Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: каковы каталоги «исходный код» и «исходный код тестирования»; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)
Я согласен с этим ответом , в котором говорится:
Вы должны иметь возможность загрузить проект
Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: каковы каталоги «исходный код» и «исходный код тестирования»; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)
Я согласен с этим ответом , в котором говорится:
Вы должны иметь возможность загрузить проект
Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: каковы каталоги «исходный код» и «исходный код тестирования»; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)
Я согласен с этим ответом , в котором говорится:
Вы должны иметь возможность загрузить проект параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)
Я согласен с этим ответом , в котором говорится:
Вы должны иметь возможность загрузить проект параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)
Я согласен с этим ответом , в котором говорится:
Вы должны иметь возможность загрузить проект в рабочее пространство и иметь в нем все что нужно для правильной настройки вверх в своей среде IDE и приступайте минут. [...] Загрузите, настройте, вперед.
И у нас это так, благодаря файлам проекта с поддержкой версий.
Хотя я в целом согласен с подходом «не версии сгенерированных файлов», у нас есть
Примечание: меня также интересует ответ VonC , особенно по поводу пункта «включить Eclipse в течение нескольких минут». Но для нас это не имеет решающего значения.
Наш контекст - Eclipse + Maven с использованием подключаемого модуля m2eclipse. У нас есть общая среда разработки, с максимально общими каталогами. Но бывает, что кто-то пробует плагин, или меняет мелочи в конфигурации, или импортировать вторую рабочую область для другой ветки ...
Наша проблема в том, что создание .project выполняется при импорте проекта в Eclipse, но не обновляется во всех случаях позже . Это печально и, вероятно, не навсегда, поскольку плагин m2eclipse улучшится, но сейчас это правда. Таким образом, мы получаем разные конфигурации. Сегодня у нас было следующее: несколько сущностей были добавлены ко многим проектам на какой-то машине, которые затем вели себя по-другому : - (
Единственное решение, которое мы видим, - это версия файла .project (чтобы избежать рисков, мы сделаем то же самое для .classpath и .settings). Таким образом, когда один разработчик изменяет свой pom, локальные файлы обновляются с помощью m2eclipse, все они фиксируются вместе, и другие разработчики будут видеть все изменения.
Примечание: в нашем случае мы используем относительные имена файлов, поэтому у нас нет проблем с тем, чтобы поделиться этими файлами.
Итак, чтобы ответить на ваш вопрос, я говорю да, зафиксируйте эти файлы.
Мне также понравилось: