Что рекомендуется .gitignore для проекта Scala / sbt в IntelliJ IDEA?

#git #scala #intellij-idea #sbt

#git #scala #intellij-idea #sbt

Вопрос:

Я создал новый проект Scala / sbt в IntelliJ IDEA 13. Поскольку другие члены команды будут работать над этим проектом (предположительно с другими IDE), что я должен добавить .gitignore ? Кажется, некоторые зависимости проекта определены в .idea папке, поэтому я не был уверен, смогу ли я поместить весь каталог .gitignore или нет.

Ответ №1:

РЕДАКТИРОВАТЬ после обнаружения Джо:

Просто попросите Джо позаботиться о вашем .gitignore

Оригинальный ответ:

Поскольку вы используете Scala, вам следует добавить:

 target
*.class
 

Они могут быть легко сгенерированы и могут зависеть от машины.

Если вы собираетесь использовать IntelliJ, то следующее:

 *.iml
*.ipr
*.iws
.idea
out
 

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

Для Vim:

 tags
.*.swp
.*.swo
 

Для Eclipse(Scala IDE):

 build
.classpath
.project
.settings
org.scala-ide.sdt.core/META-INF/MANIFEST.MF
org.scala-ide.sdt.update-site/site.xml`
 

Для macOS:

 .DS_Store
 

Я думаю, что это охватывает самые популярные IDE для Scala. Если кто-то использует среду IDE, которая не охвачена, вам придется поискать, какие временные файлы и файлы сборки они создают.

Комментарии:

1. Я использовал плагин gen-idea для sbt. Я не знаю, может ли это сделать больше, чем только IntelliJ.

2. Как мне попросить Джо позаботиться об этом? Инструмент, похоже, не поддерживает IntelliJ Idea.

3. @aa333 Ты имел в виду joe g jetbrains ? Без g у меня это не работает. Кроме того, joe было довольно сложно настроить, и, похоже, теперь у него есть некоторые проблемы с зависимостью / обратной совместимостью. (Когда я запускаю его, я получаю «устаревшую подпись действия приложения cli … это ошибка в приложении».)

4. этот комментарий устарел после недавних изменений в joe . joe g jetbrains это правильная команда с самой последней версией.

5. Должен ли я добавить project в .gitignore ? Похоже, он автоматически генерируется SBT…

Ответ №2:

Вот что gitignore.io рекомендации для Scala и sbt:

 # Created by https://www.gitignore.io/api/sbt,scala

### SBT ###
# Simple Build Tool
# http://www.scala-sbt.org/release/docs/Getting-Started/Directories.html#configuring-version-control

dist/*
target/
lib_managed/
src_managed/
project/boot/
project/plugins/project/
.history
.cache
.lib/

### Scala ###
*.class
*.log

# End of https://www.gitignore.io/api/sbt,scala
 

Я обычно рекомендую помещать IDE / editor игнорирует, .git/info/exclude если у вас есть набор редакторов. Это личный файл игнорирования, который не передается в репозиторий.

gitignore.у io тоже есть предложения для IDE и редакторов:

  • IntelliJ, который рекомендует игнорировать весь .idea каталог
  • Eclipse
  • Vim
  • Emacs

Комментарии:

1. Интересно project/boot/ , для чего нужен sbt? Когда он создается?

2. @JacekLaskowski, я не уверен. У меня есть только опыт работы со Scala. Но GitHub рекомендует точно то же самое (я думаю, что именно там gitignore.io получает свои игнорируемые файлы из).

3. Нашел его в каталоге загрузки : «Например, в следующем используется стиль размещения каталога загрузки до версии 0.11 в project/boot/» . С тех пор его можно просто удалить.

4. Сам IntelliJ рекомендует игнорировать только несколько файлов из каталога .idea: intellij-support.jetbrains.com/hc/en-us/articles /…

5. @Tautvydas, если существует единая среда разработки, возможно , имеет смысл отслеживать определенные файлы IDE. Но если разработчики могут свободно использовать другие инструменты, я настоятельно предпочитаю не отслеживать файлы, специфичные для IDE. Кажется, я не одинок, основываясь на gitignore.io рекомендация в моем ответе. joe также рекомендуется игнорировать весь .idea/ каталог, хотя он признает, что некоторые пользователи могут захотеть отслеживать часть его содержимого. В любом случае, это всего лишь руководство. Если вы уверены, что что-то другое лучше подходит для вашего проекта, дерзайте.