2010-06-14 2 views
11

У меня есть проект Java, который я хотел бы зафиксировать в моем репозитории SVN, созданный с помощью eclipse.Какие файлы должны быть добавлены в SVN в проекте Java eclipse?

Теперь, какие файлы (за исключением исходного кода, очевидно) необходимы? В корневой папке рабочей области есть папка .settings со многими файлами и подпапками, а внутри папки проекта есть два файла: .classpath и .project, а другая папка .settings с одним файлом - org.eclipse.jdt.core .prefs.

Какой из этих файлов должен быть привязан к SVN и который можно безопасно исключить?

ответ

11

Они полезны, если вы хотите иметь последовательные настройки в своей команде.

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

В каталоге .settings есть такие вещи, как параметры форматирования кода и то, что компилятор считает предупреждением, ошибками или ОК , Для согласованности я тоже начал проверять их (пока, как я думаю, все в вашей команде могут согласиться на стандарт для форматирования).

Я обнаружил, что самое большое ограничение в распространении элементов управления версиями в Eclipse - в определениях библиотек. Определения библиотек, по-видимому, хранятся только для каждого пользователя, поэтому, если вы ссылаетесь на «библиотеку» в файле .classpath, каждый другой пользователь должен вручную определить содержимое этой библиотеки (или вручную импортировать файл экспортированных библиотек) ,


Edit:(комментарий Адресация @ mliebelt в ниже)

Вы бы только совершить .settings файлы, если вы пытаетесь сохранить согласованность/стандартизацию между разработчиками. Если это не проблема для проекта, то не делать файлы .settings - это меньше всего беспокоиться о сохранении. Файлы, которые характерны для любимого плагина (ов) отдельного человека, вероятно, также не нужно делать (хотя я не думаю, что это было бы больно, если бы они были, вероятно, были бы проигнорированы?).

Два наиболее распространенных из них, которые я нашел заслуживающим совершения, - это org.eclipse.jdt.core.prefs и org.eclipse.jdt.ui.prefs, которые являются основой для любого проекта Java Eclipse.

+1

+1 для упоминания настроек. Для нашего проекта я нашел этот файл неоценимым, поскольку мы избегали публикации большого количества документации относительно правил кодирования и правил форматирования. Вместо этого мы потратили это время, чтобы договориться обо всех вариантах, которые дает затмение, и просто проверили их в проекте. –

+0

Могу ли я предположить, что сборка не нужна для фиксации? –

+0

Если папка «build» содержит выходные данные из компилятора или других автоматически сгенерированных файлов, обычно вы не будете их фиксировать. Если у него есть исходные файлы (например, скрипты сборки), вы, вероятно, захотите. – Ash

2

Вы можете исключить папку .settings, но файл .project будет полезен другим разработчикам, которые хотят восстановить тот же самый проект Eclipse. Если вы изучите файл, он должен иметь только относительные ссылки (если это не так, вы должны изменить его как таковой).

+0

Вы имеете в виду папку .settings в каталоге проекта, конечно? А как насчет файла .classpath? –

+0

Как сказал другой ответ, да, '.classpath' тоже нужен, извините. – dplass

+0

Папка '.settings' разделяется всеми проектами, для проекта нет' .settings' ... – mliebelt

2

В отличие от других ответов, я сделал лучший опыт с , не проверяя файл .project в больших проектах с открытым кодом, с которыми я работаю.

Вы можете не соглашаться со мной, но есть одна проблема с общими файлами .project: они содержат ссылки на натуры проекта, используемые в проекте. Природа проекта снова зависит от плагинов, установленных на локальной машине разработчиков.

Пример: Если вы используете Findbugs в проекте Java, в ваш проект Java добавляется новая природа.Проверяя, что этот файл, изменяя его в другой системе (без установки Findbugs) и впоследствии используя его в моей системе, привел к тому, что ссылка на Findbugs была потеряна для меня (и, следовательно, все проверки Findbugs были удалены молча).

Но если вы можете согласиться с тем, что все ваши разработчики согласятся использовать одни и те же инструменты, вы можете легко решить эту проблему.

+0

Хорошая точка. Но это справедливо только для проектов с открытым исходным кодом, в которых вы не намереваетесь использовать одни и те же плагины для всех разработчиков. Там вы, как правило, даже не контролируете, какой IDE каждый должен использовать, поэтому вы проверяете источники _only_. – mliebelt

Смежные вопросы