Scala e SBT com IntelliJ

88 views
Skip to first unread message

Matheus Ashton

unread,
Sep 12, 2011, 4:04:05 PM9/12/11
to scala-brasil
Olá Pessoal,

Sou novo no grupo e no Scala tb, por isso peço desculpas se estiver
fazendo algo mto idiota, mas a questão é a seguinte:

Resolvi começar a mexer com Scala, trabalho com Java e Groovy e achei
que seria interessante ver o que o Scala poderia me oferecer, porém
estou encontrando algumas dificuldades.

Instalei o Scala, e o SBT (Simple Build Tool), estou usando como IDE o
IntelliJ, instalei os plugins do Scala e do SBT no IntelliJ e instalei
o plugin sbt-idea para gerar os projetos para o IntelliJ.

Acontece que quando eu sigo em frente pra criar o projeto tenho
algumas dúvidas:

Crio uma pasta e dentro da pasta inicio o sbt para criar o projeto. Ao
rodar o comando gen-idea para gerar os arquivos do projeto do
IntelliJ, acontecem várias falhas de download:

[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.scala-tools.sbt#sbt_2.8.1;0.10.1!sbt_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#sbt_2.8.1;0.10.1!sbt_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#main_2.8.1;0.10.1!main_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#main_2.8.1;0.10.1!main_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#actions_2.8.1;0.10.1!
actions_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#actions_2.8.1;0.10.1!
actions_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#classfile_2.8.1;0.10.1!
classfile_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#classfile_2.8.1;0.10.1!
classfile_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#io_2.8.1;0.10.1!io_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#io_2.8.1;0.10.1!io_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#control_2.8.1;0.10.1!
control_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#control_2.8.1;0.10.1!
control_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#interface;0.10.1!interface.jar(doc)
[warn] :: org.scala-tools.sbt#interface;0.10.1!interface.jar(src)
[warn] :: org.scala-tools.sbt#logging_2.8.1;0.10.1!
logging_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#logging_2.8.1;0.10.1!
logging_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#process_2.8.1;0.10.1!
process_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#process_2.8.1;0.10.1!
process_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#classpath_2.8.1;0.10.1!
classpath_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#classpath_2.8.1;0.10.1!
classpath_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#launcher-interface_2.8.1;0.10.1!launcher-
interface_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#launcher-interface_2.8.1;0.10.1!launcher-
interface_2.8.1.jar(src)
[warn] :: org.scala-lang#scala-compiler;2.8.1!scala-compiler.jar(doc)
[warn] :: org.scala-tools.sbt#incremental-compiler_2.8.1;0.10.1!
incremental-compiler_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#incremental-compiler_2.8.1;0.10.1!
incremental-compiler_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#collections_2.8.1;0.10.1!
collections_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#collections_2.8.1;0.10.1!
collections_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#api_2.8.1;0.10.1!api_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#api_2.8.1;0.10.1!api_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#persist_2.8.1;0.10.1!
persist_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#persist_2.8.1;0.10.1!
persist_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#compile_2.8.1;0.10.1!
compile_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#compile_2.8.1;0.10.1!
compile_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#ivy_2.8.1;0.10.1!ivy_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#ivy_2.8.1;0.10.1!ivy_2.8.1.jar(doc)
[warn] :: com.jcraft#jsch;0.1.31!jsch.jar(doc)
[warn] :: commons-httpclient#commons-httpclient;3.1!commons-
httpclient.jar(doc)
[warn] :: commons-codec#commons-codec;1.2!commons-codec.jar(src)
[warn] :: org.scala-tools.sbt#completion_2.8.1;0.10.1!
completion_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#completion_2.8.1;0.10.1!
completion_2.8.1.jar(doc)
[warn] :: jline#jline;0.9.94!jline.jar(doc)
[warn] :: org.scala-tools.sbt#discovery_2.8.1;0.10.1!
discovery_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#discovery_2.8.1;0.10.1!
discovery_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#run_2.8.1;0.10.1!run_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#run_2.8.1;0.10.1!run_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#task-system_2.8.1;0.10.1!task-
system_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#task-system_2.8.1;0.10.1!task-
system_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#tasks_2.8.1;0.10.1!tasks_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#tasks_2.8.1;0.10.1!tasks_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#tracking_2.8.1;0.10.1!
tracking_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#tracking_2.8.1;0.10.1!
tracking_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#cache_2.8.1;0.10.1!cache_2.8.1.jar(doc)
[warn] :: org.scala-tools.sbt#cache_2.8.1;0.10.1!cache_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#testing_2.8.1;0.10.1!
testing_2.8.1.jar(src)
[warn] :: org.scala-tools.sbt#testing_2.8.1;0.10.1!
testing_2.8.1.jar(doc)
[warn] :: org.scala-tools.testing#test-interface;0.5!test-
interface.jar(src)
[warn] :: org.scala-tools.testing#test-interface;0.5!test-
interface.jar(doc)
[warn] :: org.scala-tools.sbt#compiler-interface;0.10.1!compiler-
interface.jar(doc)
[warn] :: org.scala-tools.sbt#compiler-interface;0.10.1!compiler-
interface.jar(src)
[warn] :: org.scala-tools.sbt#precompiled-2_9_0-1;0.10.1!
precompiled-2_9_0-1.jar(doc)
[warn] :: org.scala-tools.sbt#precompiled-2_9_0-1;0.10.1!
precompiled-2_9_0-1.jar(src)
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[info]
[info] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

Mas apesar disso ele cria o projeto, então prossegui com os passos, ao
entrar na pasta, vejo que ele criou apenas as pastas project e target,
e não existe pasta de source para o projeto, (era pra ser assim
mesmo?), crio então a pasta de source code do projeto (src/main/scala)
e a pasta de source tests (src/main/test), crio ainda a pasta de libs
(/lib).

Após isso abro o projeto no IntelliJ e ele reconhece a pasta project
como source folder, então eu clico no botão direito e clico em "Mark
folder as" e marco as pastas de source code e source tests.

Após isso crio um build.sbt como manda aqui na raíz do projeto e
declaro la as dependencias, só que ao tentar dar um compile ou um
update no console sbt do IntelliJ nada acontece, ele compila normal e
termina a task mas eu não vejo menção sobre ele ter baixado as
dependencias, e a pasta lib continua vazia. Isso é normal? O que eu
estou fazendo de errado?

Se quem tiver mais experiência puder me ajudar eu agradeço muito.

Abraços

Everson Alves da Silva

unread,
Nov 25, 2011, 11:59:41 AM11/25/11
to scala-...@googlegroups.com
Oi, a postagem é antiga mas fica de referencia para quem tiver o mesmo problema.

Acho muito mais prático ao usar intellij, configurar o sbt para baixar os jars numa pasta específica e configurar no intellij para incluir essa pasta libs (ao invés de incluir os jars manualmente).

as configs no sbt foram:

retrieveManaged := true
retrievePattern := "[type]s/[organisation]-[module]-[artifact](-[revision])(-[classifier]).[ext]"

Se quiser ver como ficou tudo, dá uma olha no meu build.sbt:

https://github.com/khronnuz/ks-lift/blob/master/build.sbt

Fred

unread,
Nov 25, 2011, 12:35:06 PM11/25/11
to scala-...@googlegroups.com

Tu nao usa o sbt-idea?

Sent from Galaxy SII

Everson Alves da Silva

unread,
Nov 25, 2011, 12:38:05 PM11/25/11
to scala-...@googlegroups.com
Não. não precisa. Só essas 2 linhas já resolvem :). O sbt cria uma pasta lib_managed/jars com todas as dependencias nela. No Idea vou no projeto e boto para incluir uma pasta de jars como dependencia e pronto! Dor de cabeça nenhuma. Cada vez que atualizo as dependencias pelo sbt, o intellij 'detecta'.
Reply all
Reply to author
Forward
0 new messages