2014-07-30 5 views
1

У меня есть проект Scala, который я разделяю через git между двумя (windows) машинами. Я создал их с помощью SBT и sbt-eclipse, поэтому я могу редактировать и тестировать в eclipse, а также строить и тестировать из командной строки.Scala IDE и путь к классам

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

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

ответ

2

Я настоятельно рекомендую удалить файлы eclipse-sbt-сгенерированные файлы (и все другие сгенерированные файлы) из git. Каждая машина будет иметь свой собственный файл .classpath, который создается на этом компьютере, который сгенерирован на этом компьютере для этой машины, и может быть регенерирован всякий раз, когда вам нужно. Файлы проекта build.sbt должны быть в git, поэтому, когда вы нажимаете на каждую машину, она будет иметь обновленную конфигурацию, и вы можете просто запустить eclipse для sbt только тогда, когда у вас есть изменение зависимости.

Действительно, вы всегда должны избегать создания файлов в исходном элементе управления. Имейте только важные вещи в своем проекте git и генерируйте остальные по мере необходимости.

+0

OK. Что объясняет его. Я не понял эту проблему, так как всегда (по java-проектам, в любом случае) просто включал файлы .classpath и т. Д. Я предполагаю, что файл '.project' все еще в порядке, не так ли? – melston

+0

Я бы тоже не включил .project. Оба они генерируются командой 'sbt eclipse', и, следовательно, нет значения для их наличия в git (но это потенциально недостатки, если есть конфликты). Я также не буду включать эти файлы в проект Java по тем же причинам. – dhg

+0

Значит, мне действительно нужно изменить, как я работаю с eclipse на проектах Scala. Я не могу просто импортировать из git больше, так как он не будет включать полный проект. Мне нужно импортировать, перейти в командную строку, выполнить 'sbt eclipse', а затем обновить мое рабочее пространство. Это покрывает это? О, и добавьте '.classpath' и' .project' в мой файл '.gitignore'. – melston

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