.classpath и.project - проверять контроль версий или нет?
Я запускаю Java-проект с открытым исходным кодом, который состоит из нескольких модулей в дереве зависимостей. Все эти модули являются подкаталогами в хранилище Subversion. Для новичков в нашем проекте много работы по настройке всего этого вручную в Eclipse.
Не все наши разработчики используют затмение. Тем не менее, мы рассматриваем просто включить файлы.classpath и.project, чтобы помочь новичкам начать работу. Это хорошая идея? Или это приведет к постоянным конфликтам в этих файлах? Есть ли альтернативный способ облегчить настройку проекта на затмении?
7 ответов
Определенно, да, как я уже сказал в " Поддерживаете ли вы свои файлы проекта под контролем версий?"
"Загрузите, настройте, иди".
Но... это на самом деле верно только для недавних настроек Eclipse3.5, где пути сборки поддерживают относительные пути:
И Eclipse3.6 будет лучше, так как он поддерживает относительные пути для переменных пути в Linked Resources
:
(начиная с 3.6M5)
Определенно нет - это вообще ужасная идея распространять файлы проекта через Subversion. Тем более, что кто-то может изменить их каким-то странным образом. Хорошая страница в документации проекта - гораздо лучшая идея. Наш проект также имеет много модулей и сложную настройку. Мы создали страницу слияния, описывающую, как начать работу с проектом в каждой IDE -версии популярного программного обеспечения - IntelliJ, Eclipse, NetBeans. Файл README в Subversion содержит ту же информацию.
Я голосую "нет", но это потому, что я обычно генерирую эти файлы из maven
По моему опыту, за исключением ограниченных случаев, когда используются только локальные настройки, все должно быть в системе контроля версий. Закон контроля над источниками заключается в том, что все, кто оказал давление, должны сработать. К сожалению, затмение часто приводит к тому, что такие вещи .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
идет в.
Я бы порекомендовал вам проверять файлы в subversion, ЕСЛИ они не содержат абсолютных путей и других данных, которые бы связывали их напрямую с средой одного разработчика.
Если файлы содержат абсолютные пути и т.п., README был бы лучшим выбором.
Я хотел бы проверить эти файлы, чтобы сделать старт для новых пользователей как можно проще. В лучшем случае пользователь должен проверить проект и иметь возможность запустить его без дополнительных знаний. Для этих файлов правила такие же, как и для других файлов в проекте: обращайтесь с ними осторожно. Вы не должны помещать абсолютные пути в исходный код, в отличие от файлов конфигурации.
Если файлы проверены таким образом, что проект запускается с нуля, не должно быть особых усилий для их изменения.
Да, обязательно отметьте их, но убедитесь, что вы документируете любые зависимости пути и, по возможности, избегайте абсолютных путей.
Если вы не отметите их, то любой, кто проверяет проект, должен будет воссоздать все эти настройки, что раздражает и может привести к ошибкам.
Некоторые сложные установки могут лучше обрабатываться скриптом для генерации этих файлов, но обычно лучше просто проверить их.