Подтвердить что ты не робот

Рекомендации по управлению IntelliJ IDEA 9 + Maven + Version

В проекте используется Maven, поэтому файлы POM являются основными источниками информации о проекте. В файлах проекта есть несколько полезных настроек, которые было бы неплохо сохранить.

OTOH IDEA, похоже, создает слишком много избыточных изменений в структуре файла проекта, которая загрязняет историю SVN и иногда создает конфликты.

Должен ли я хранить каталог .idea и файлы *.iml под управлением версии? в полном объеме? частично?

Обновление: Итак, лучшая практика, которую я нашел для меня и моей команды, пока:

  • Проверьте все файлы IDEA, каталоги *.iml и .idea. Они содержат ценную информацию, и это пустая трата времени, чтобы воссоздать ее каждый раз, когда вы обновляете.
  • Создать частную ветвь для каждого разработчика
  • cd в каталог .idea
  • svn переключает его на свою частную ветку
  • Не проверяйте файлы IDEA на обычных коммитах - они загрязняют историю. Проверьте их на специальные коммиты.

Таким образом, вы сохраняете содержимое каталога .idea в управлении версиями, но не допускаете его из-за обычных коммитов. Любой разработчик может иметь доступ к другим каталогам IDEA.

Обновление 2:. Поскольку этот вопрос был написан, я изменил свою практику на проверку не в любых файлах IntelliJ в контроле версий, как это было рекомендовано многими респондентами. Это моя текущая практика как для Maven, так и для Gradle. Инструменты разработаны до такой степени, что критическая информация всегда может быть воспроизведена из исходных файлов .POM или .gradle. Когда файлы меняются, IDE отслеживает изменения надежно, поэтому вы не теряете файлы IDE, которые часто не требуют проверки.

Обновление 3: Через 7 лет после запроса этого вопроса, похоже, все еще актуально. То же самое относится и к Gradle (вероятно, к SBT): не проверяйте файлы IDE, обновляйте их по необходимости из базовых файлов POM,.gradle или SBT.

4b9b3361

Ответ 1

Короткий ответ: не помещайте эти файлы в репозиторий управления версиями, так как вы можете "генерировать" их (и это даже более верно, если они вам не нужны, если они раздражают, если они могут нарушить другие среды).

Я лично использую следующие значения для svn:ignore:

target 
*~ 
*.log 
.classpath 
.project 
*.ipr 
*.iws 
*.iml 
.settings 

Ответ 2

Одна из величайших вещей в Maven заключается в том, что существует поддержка инструмента для превращения POM в собственный проект в Eclipse, Idea и Netbeans. Если у вас есть pom, вы можете быстро создать собственный проект.

По этой причине я не буду проверять файлы .idea или *.iml в исходном элементе управления больше, чем проверять в RMI-заглушках или файлах классов.

Ответ 3

Я думаю, вы должны поместить каталог .idea в управление версиями. Большая часть конфигурации, содержащейся там, должна отслеживаться версией, например. конфигурации компилятора.

Единственным файлом, который не принадлежит управлению версиями, является файл .idea/workspace.xml, поскольку он содержит только конфигурацию, специфичную для вашей локальной среды.

IntelliJ Idea фактически помещает workspace.xml в список игнорирования по умолчанию, поэтому, если вы используете Idea для регистрации, вы должны быть настроены без изменения.

Ответ 4

Я вижу, что стандартный ответ: "Не проверяйте файл проекта, просто .pom". Но такие файлы, как .ipr, содержат множество полезных настроек, которые НЕ могут быть получены из файла .pom. Что делать, если пользователи IntelliJ хотят поделиться этими настройками? Я знаю, что .ipr файлы ARE предназначены для версии (см. этот поток, например). Хотелось бы, чтобы у меня был реальный ответ, но я еще не нашел хорошей практики по этому вопросу.

Ответ 5

Мое мнение состоит в том, что мы должны оставлять любые отдельные файлы IDE вне контроля версий. Идея состоит в том, что мы должны хранить как можно больше информации в независимой форме IDE, такой как файлы Maven pom и т.д. Все важные настройки проекта можно сохранить там. И имея все основные параметры проекта, хранящиеся в файле pom, я не вижу серьезной причины для проверки не только конфигурации проекта IDEA, но и любой другой конкретной конфигурации IDE. Кроме того, конфигурация проекта стиля папки .idea действительно загрязняет журналы изменений. И мы по-прежнему хотим сохранить настройки проекта IDEA в управлении версиями, мы можем хранить их как минимум в одном формате .ipr.

Ответ 6

Я опаздываю на эту вечеринку, но эта точная проблема преследует меня. И я был просто вдохновлен тем, что, как я считаю, мог бы работать, по крайней мере, с нашей системой управления версиями.

Файлы IntelliJ не должны храниться "вместе" с авторитетным pom.xml и источником. История управления версиями не является "загрязненной", если эти изменения, не связанные с источником, записываются в другое место в исходном дереве.

Итак, я попытаюсь переместить файлы IntelliJ в параллельное место в системе управления версиями, использовать простое сопоставление файлов/каталогов для объединения исходных файлов и файлов проекта на машине разработчика и отслеживать изменения в системе управления версиями, которые являются чисто файлы, которые влияют на сборку.