Esta página asume que usted ha instalado sbt y ha visto el ejemplo Hello, World.
En la terminología de sbt, el “directorio base” es el directorio que
contiene al proyecto. De modo que si usted creó el proyecto hello
que
contiene hello/build.sbt
y hello/hw.scala
como se indicó en el
ejemplo Hello, World, hello
es su directorio base.
El código fu8ente puede ponerse en el directorio base del proyecto como
en el caso de hello/hw.scala
. Sin embargo, la mayoría de las personas
no hacen esto para proyectos reales; se traduce en mucho desorden.
sbt utiliza la misma estructura de directorios que Maven para el código fuente por default (todos las rutas son relativas al directorio base):
src/
main/
resources/
<archivos que se incluyen en el jar principal van aquí>
scala/
<código fuente de Scala de main>
java/
<código fuente de Java de main>
test/
resources
<archivos que se incluyen en el jar de test van aquí>
scala/
<código fuente de Scala para test>
java/
<código fuente de Java para test>
Otros directorios en src/
serán ignorados. Adicionalmente, todos los
directorios ocultos serán ignorados.
Ya ha visto build.sbt
en el directorio base del proyecto. Otros
archivos sbt aparecen en el subdirectorio project
.
El subdirectorio project
puede contener archivos .scala
, que se
combinan con los archivos .sbt
para formar la definición completa de
la construcción.
Vea .scala build definition para más información.
build.sbt
project/
Build.scala
Tal vez pueda ver archivos .sbt
dentro de project/
pero no son
equivalentes a archivos .sbt
en el directorio base del proyecto. La
explicación de esto viene después, dado que necesitará algo
de antecedentes primero.
Los archivos generados (clases compiladas, paquetes en jars, archivos
gestionados (managed files), caches, y documentación) será escrita al
directorio target
por default.
Su archivo .gitignore
(o el equivalente para otro sistema de control
de versiones) debe contener:
target/
Note que el texto anterior tiene una /
de forma deliberada (para que
únicamente los directorios sean seleccionados) y de manera deliberada no
tiene una /
al inicio (para que el directorio project/target/
también sea seleccionado, además de simplemente el directorio
target/
).