.classpath и .project - проверять контроль версий или нет? - PullRequest
84 голосов
/ 12 мая 2010

Я запускаю Java-проект с открытым исходным кодом, который состоит из нескольких модулей в дереве зависимостей. Все эти модули являются подкаталогами в хранилище Subversion. Для новичков в нашем проекте много работы по настройке всего этого вручную в Eclipse.

Не все наши разработчики используют Eclipse. Тем не менее, мы рассматриваем просто включить файлы .classpath и .project, чтобы помочь новичкам начать работу. Это хорошая идея? Или это приведет к постоянным конфликтам в этих файлах? Есть ли альтернативный способ облегчить настройку проекта на Eclipse?

Ответы [ 7 ]

63 голосов
/ 12 мая 2010

Определенно, да, как я уже сказал в " Вы держите файлы проекта под контролем версий? "

«Загрузи, настрои, иди.»

Но ... это действительно так только для недавних настроек Eclipse3.5, где пути сборки поддерживают относительные пути :

Build path supports relative paths


И Eclipse3.6 будет лучше, поскольку он поддерживает относительные пути для переменных пути в Linked Resources:

path variable with relative path
(с версии 3.6M5)

17 голосов
/ 12 мая 2010

Определенно нет - вообще ужасная идея распространять файлы проекта через Subversion. Тем более, что кто-то может изменить их каким-то странным образом. Хорошая страница в документации проекта - гораздо лучшая идея. В нашем проекте также много модулей и сложной настройки. Мы создали страницу слияния, описывающую, как начать работу с проектом в каждой IDE-версии PopUler - IntelliJ, Eclipse, NetBeans. Файл README в Subversion содержит ту же информацию.

9 голосов
/ 12 мая 2010

Я голосую "нет", но это потому, что я обычно генерирую эти файлы из maven

5 голосов
/ 20 февраля 2013

По моему опыту, за исключением ограниченных случаев, когда используются исключительно локальные настройки, все должно быть под контролем исходного кода. Закон контроля над источниками заключается в том, что все, кто оказал давление, должны сработать. К сожалению, затмение часто приводит к тому, что такие вещи находятся в .classpath:

    <classpathentry kind="con" 
      path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7"/>

Так что на моем Mac это работает, и, возможно, у кого-то на Mac есть такой же JRE, но это не будет работать ни для кого другого.

Кроме того, нет простого способа обойти это. Eclipse всегда будет добавлять это в. Я ХОЧУ иметь там файл .classpath, потому что в нашей папке lib есть некоторые сторонние JAR-файлы, где мы заботимся о версиях, поэтому мы оставляем их там, чтобы новые разработчики не получали их , Мы переходим к управляемой системе, но все еще проверены управляемые + неуправляемые зависимости. Это означает, что все разработчики должны просто убедиться, что две директории находятся в их .classpath s. Но это лучше, чем исправлять свой JRE каждый раз, когда вы тянете, и вносить изменения в .classpath каждый раз, когда вы фиксируете.

Затмение делает и другие приятные вещи для тебя. Файл .project обычно одинаков для разных экземпляров, поэтому включите его. Но самое лучшее в управлении исходными кодами для eclipse - это настройки Run Configurations. На вкладке «Общие» в диалоговом окне «Выполнить конфигурации» сохраните конфигурации, чтобы они отображались для ваших коллег в списках избранного для «Отладка и запуск». Для меня куча файлов .launch помещается в каталог .settings, поэтому мы все можем их использовать.

Итак, я говорю: .settings каталог переходит в систему контроля версий для конфигураций запуска (кроме * .prefs)

.classpath остается вне

.project входит.

5 голосов
/ 12 мая 2010

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

Если файлы содержат абсолютные пути и т. П., README будет лучшим выбором.

5 голосов
/ 12 мая 2010

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

Если файлы проверены таким образом, что проект запускается с нуля, их не нужно сильно менять.

2 голосов
/ 12 мая 2010

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

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

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

...