Pergunta

Acabei de começar com o desenvolvimento do Scala/LiftWeb/SBT e gostaria de importar um projeto SBT no Intellij Idea. Na verdade, consegui importar meu projeto de duas maneiras diferentes:

1) com maven. Criei um projeto MAVEN e, do topo, criei um projeto SBT, que importava no Intellij. Eu poderia começar facilmente, parar o servidor Jetty e fazer outras coisas. Mas não é isso que eu quero. Eu quero fazer as mesmas coisas, apenas sem Maven. Isso me levou a

2) com eclipse. Então, criei um novo projeto SBT (com um pequeno script que escrevi, configurando o projeto SBT para ser um projeto da web). Usei então o plug -in SBT -Ecipify para 'converter' o projeto para o Eclipse, que eu importei no Intellij (fonte existente -> eclipse). Mas os problemas começaram aqui: não consigo fazer o plugin Intellij SBT funcionar.

Alguém pode me ajudar com isso?

Foi útil?

Solução

Existem três maneiras básicas de como criar um projeto - as versões modernas do Intellij podem importar o projeto SBT para fora da caixa; caso contrário, você poderá usar o plug -in SBT para gerar projeto Intellij ou usar o plug -in Intellij scala para criar um projeto SBT. Os recursos básicos funcionam fora da caixa usando as duas soluções, algumas construções complexas podem ter problemas; portanto, tente outras ferramentas para ver se funciona lá.

Intellij

A idéia de Intellij se tornou muito melhor nos dias de hoje. A versão atual (14.0.2) suporta projetos SBT prontos para a caixa com o plug -in Scala. Basta instalar o plug -in e você poderá abrir projetos Scala/SBT sem problemas.

Scala plugin under Plugins in Preferences

Com o plug -in, apenas aponte para um projeto SBT e a ideia oferecerá um assistente para abrir esse tipo de projeto.

Import sbt project

Plugin Intellij Scala

O plugin Intellij pode ser encontrado aquihttp://confluence.jetbrains.com/display/sca/scala+plugin+for+Intellij+idea ou pode ser instalado Directoly a partir do IDE usando Configurações -> Plugins Dialog. Depois, pode -se simplesmente fazer o arquivo -> novo projeto -> scala -> SBT baseado. Intellij gerará compilação básica. SBT, baixará as dependências necessárias e o projeto aberto.

Plugin SBT

O plugin SBT que gera um projeto de idéia baseado nos arquivos SBT pode ser encontrado aqui: https://github.com/mpeltonen/sbt-idea

SBT 12.0+ e 13.0+

Basta adicionar addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") para o seu build.sbt; Não são necessários resolvedores adicionais.

Versões mais antigas:

SBT 0,11+

Criar e adicionar as seguintes linhas a ~/.sbt/plugins/build.sbt OU PROJECT_DIR/project/plugins.sbt

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")

Usar gen-idea no SBT para criar arquivos de projeto de idéia.

Por padrão, os classificadores (ou seja, fontes e javadocs) das dependências do SBT e da biblioteca são carregados se encontrados e referências adicionadas aos arquivos do projeto IDEA. Se você não quiser baixar/fazer referência a eles, use o comando gen-idea no-classifiers no-sbt-classifiers.


SBT 0.10.1(De acordo com o autor do plugin, 0,10.0 não vai trabalhar!)

Crie e adicione as seguintes linhas a ~/.sbt/plugins/build.sbt:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0"

Usar gen-idea Tarefa SBT para criar arquivos de projeto de idéia.

Por padrão, os classificadores (ou seja, fontes e javadocs) das dependências do SBT e da biblioteca são carregados se encontrados e referências adicionadas aos arquivos do projeto IDEA. Se você não quiser baixar/fazer referência a eles, use o comando gen-idea no-classifiers no-sbt-classifiers.


SBT 0.7

Para usá -lo, basta executar isso no seu shell SBT, ele usará o plug -in como um programa externo:

 > *sbtIdeaRepo at http://mpeltonen.github.com/maven/
 > *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
 ...
 > update
 ...
 > idea
 ...

Você também pode adicionar características na definição do seu projeto, como deseja:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}

Outras dicas

Por enquanto eu faço isso à mão. É bastante simples.

  1. Crie o projeto com SBT
  2. Crie um novo projeto de idéia com o mesmo caminho raiz
  3. Crie um módulo com o mesmo caminho raiz
  4. Defina SRC/Main/Scala como um caminho SRC no módulo
  5. Defina SRC/Test/Scala como um caminho de teste no módulo
  6. Adicione Scala-Library.jar como uma biblioteca
  7. Adicione Lib (se estiver presente) como um diretório JAR em uma biblioteca de módulos
  8. Adicione Lib_Managed/Compile (se estiver presente) como um diretório JAR dentro de uma biblioteca de módulos
  9. Adicione Lib_Managed/Test (se estiver presente) como um diretório JAR dentro de uma biblioteca de módulos

É isso da memória. Seria melhor se fosse automatizado, mas não é grande coisa como é agora.

Uma nota de cautela: a abordagem acima não funciona bem com o SBT da nova escola, o IE Versões 0.10 e o mais recente, porque não copia dependências no lib_managed por padrão. Você pode adicionar

retrieveManaged := true

para o seu build.sbt para copiá -lo as dependências para lib_managed.

Tempus fugit E a idéia de Intellij se tornou muito melhor nos dias de hoje. Afinal, é 2015, não é?

Tendo dito isto, A versão mais recente do Intellij Idea 14.0.2 suporta projetos SBT fora da caixa com o plugin scala. Basta instalar o plug -in e você poderá abrir projetos Scala/SBT sem muitos problemas.

Scala plugin under Plugins in Preferences

Estou usando a versão de acesso antecipado do plug -in, que é 1.2.67.6.EAP a partir do momento da redação.

Com o plug -in, apenas aponte em um projeto SBT e a ideia oferecerá a você um assistente para abrir esse tipo de projeto.

Import sbt project

Sobre o SBT-idea no SBT 0,12,4

Para SBT 0.12.4 O arquivo de configuração do plug -in em todo o sistema - ~/.sbt/plugins/build.sbt ou PROJECT_DIR/project/plugins.sbt - Deve ter as seguintes linhas:

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")

Corre sbt gen-idea Para gerar arquivos de projeto de idéia.

Ler O site do plug-in de Idea SBT Para informações mais atualizadas. Você também pode encontrar a entrada do meu blog Importar projeto baseado em SBT para Intellij Idea 13 (com SBT-Idea, Scala 2.11 e SBT 0.12) útil.

Para SBT 0.7

Ver a resposta em outro lugar nesta página.

Para SBT 0.10

Clone e construa o SBT-idea de Ismael:

git clone https://github.com/ijuma/sbt-idea.git
cd sbt-idea
git checkout sbt-0.10
./sbt package

Crie um diretório Lib Plugin SBT se você ainda não tiver um

mkdir -p  ~/.sbt/plugins/lib

Copie o frasco construído na etapa um aqui

cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib

Reinicie ou recarregue o SBT, então você pode correr gen-idea (ou gen-idea with-classifiers Se você quer fontes e javadoc em Intellij também)

Fonte: Sugestão dos tackers no grupo de mensagens.

Na idéia Intellij 13.x em si

Você pode abrir um projeto baseado em SBT na Idea hoje em dia. Ele criará o projeto e os módulos necessários e manterá suas dependências atualizadas sempre que você fizer alterações nos scripts de construção.

Acabei de passar por toda essa dor. Passo dias tentando obter um ambiente aceitável e cheguei à conclusão de que Ensime, SBT e Jrebel serão meu ambiente de desenvolvimento por algum tempo. Sim, ele está voltando para o Emacs, mas o ensime o transforma um pouco ou uma idéia com refatoração, suporte de depuração, navegação etc. Não é nem de longe tão bom quanto o eclipse (java), mas, a menos que os plugins scala funcionem melhor, seja o Melhor que temos.

Até que os ambientes de desenvolvimento do Scala se preparem para o Snuff (eclipse ou Intellij), eu não vou me preocupar. Eles são um buggy demais.

Veja a discussão no site do elevador.

http://groups.google.com/group/liftweb/browse_thread/thread/6e38e7396575052#

Dentro desse tópico, há um link para um Howto para o Intellij, mas, embora meio que funcione, há muitos problemas que o tornam um pouco menos tão útil.

http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/comment-page-1/

As respostas são antigas para 2014. em Intellij 13.x, o plugin scala é ver 0.41.2 (o SBT está incluído).

Meu A versão SBT é 0,13.5 (terminal : sbt sbtVersion )

Vá para a pasta raiz do projeto e entre no terminal

sbt idea

Você verá duas novas pastas ocultas .idéia e .idea_modules.

Em seguida, em Intellij, Arquivo> Abra> Selecione o projeto. Deve abrir o projeto sem nenhum problema.

Antes de começar a criar seu projeto SBT, verifique se o plug -in do Scala é baixado e ativado na Intellij Idea.

Abaixo o link explica tudo o que você precisa saber.

https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top