Domanda

Ho appena è cominciato con la Scala / LiftWeb / Sbt in via di sviluppo, e vorrei importare un progetto Sbt in IntelliJ Idea. A dire il vero, sono riuscito a importare il mio progetto in due modi diversi:

1) con Maven. Ho creato un progetto Maven, e della parte superiore della che ho creato un progetto Sbt, che ho poi importato in IntelliJ. Potrei quindi facilmente avviare, arrestare il server molo, e fare altre cose. Ma non è quello che voglio. Voglio fare le stesse cose, solo Maven-libera. Questo mi ha portato a

2) con Eclipse. Così, ho creato un nuovo progetto Sbt (con un piccolo script che ho scritto, configurando il progetto Sbt di essere un WebProject). Ho usato poi la SBT-eclipsify (sorgente esistente -> Eclipse) plugin per 'convertire' il progetto per Eclipse, che ho poi importato in IntelliJ. Ma i problemi sono iniziati qui: non riesco a ottenere l'IntelliJ Sbt plugin per lavoro.

Qualcuno può aiutarmi con questo?

È stato utile?

Soluzione

Ci sono tre modi di base come creare un progetto - le versioni moderne di IntelliJ possono importare progetto SBT fuori dalla scatola, altrimenti è possibile utilizzare sia SBT plugin per generare progetto IntelliJ, o utilizzare IntelliJ Scala plugin per creare il progetto SBT. Caratteristiche di base di lavoro, fuori dalla scatola con entrambe le soluzioni, alcune complesso costruisce può avere problemi, in modo da provare altri strumenti per vedere se funziona lì.

IntelliJ

IntelliJ IDEA è diventata molto meglio in questi giorni. L'attuale versione (14.0.2) sostiene progetti SBT fuori dalla scatola con il plugin Scala. Basta installare il plugin e si dovrebbe essere in grado di aprire Scala / progetti SBT senza problemi.

Con il plugin, basta puntare ad un progetto di SBT e IDEA sta per offrire una procedura guidata per aprire questo tipo di progetto.

Importa SBT progetto

IntelliJ Scala Plugin

IntelliJ plugin può essere trovato qui http://confluence.jetbrains.com/display/SCA/Scala + Plugin + per + IntelliJ IDEA + o può essere installato directoly dall'interno dell'IDE utilizzando Impostazioni -> plug-finestra. In seguito si può solo fare File -> Nuovo progetto -> Scala -> base di SBT. IntelliJ genererà build.sbt di base, scaricare le dipendenze necessarie e progetto aperto.

SBT Plugin

Sbt plugin che generano un progetto idea in base ai file SBT può essere trovato qui: https: // GitHub .com / mpeltonen / SBT-idea

SBT 12.0 e versioni successive e 13.0 +

È sufficiente aggiungere al vostro addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") build.sbt; non sono necessari ulteriori resolver.

versioni precedenti:

SBT 0,11 +

Crea e aggiungere le seguenti righe al ~/.sbt/plugins/build.sbt OR PROJECT_DIR/project/plugins.sbt

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

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

Usa gen-idea in SBT per creare i file di progetto IDEA.

Per impostazione predefinita, classificatori (cioè fonti e javadocs) della SBT e dipendenze delle librerie sono caricate se trovati e riferimenti aggiunti ai file di progetto IDEA. Se non si desidera loro download / di riferimento, utilizzare il comando gen-idea no-classifiers no-sbt-classifiers.


SBT 0.10.1 (Secondo l'autore plug-in, 0.10.0 non di lavoro!)

Crea e aggiungere le seguenti righe a ~ / .sbt / plugins / build.sbt:

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

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

Usa compito gen-idea SBT per creare i file di progetto IDEA.

Per impostazione predefinita, classificatori (cioè fonti e javadocs) della SBT e dipendenze delle librerie sono caricate se trovati e riferimenti aggiunti ai file di progetto IDEA. Se non si desidera loro download / di riferimento, utilizzare il comando gen-idea no-classifiers no-sbt-classifiers.


SBT 0.7

Per utilizzarlo, è sufficiente eseguire questo dalla shell SBT, userà il plugin come un programma esterno:

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

È anche possibile aggiungere caratteristica nella definizione del progetto, come si vuole:

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

Altri suggerimenti

Per ora lo faccio a mano. E 'molto semplice.

  1. Crea il progetto con SBT
  2. Crea una nuova idea di progetto con lo stesso percorso root
  3. Creare un modulo con lo stesso percorso principale
  4. Imposta src / main / Scala come un percorso src sul modulo
  5. Imposta src / test / Scala come un percorso di prova sul modulo
  6. Aggiungi scala-library.jar come una libreria
  7. Aggiungi lib (se presente) come directory jar all'interno di una libreria di moduli
  8. Aggiungi lib_managed / compilazione (se presente) come directory jar all'interno di una libreria di moduli
  9. Aggiungi lib_managed / test (se presente) come directory jar all'interno di una libreria di moduli

Questo è tutto dalla memoria. Sarebbe meglio se fosse automatizzato, ma è un grosso problema come è ora.

Una nota di cautela: L'approccio di cui sopra non funziona bene con SBT nuova scuola, vale a dire le versioni 0.10 e più recenti, perché non copia le dipendenze in lib_managed per impostazione predefinita. È possibile aggiungere

retrieveManaged := true

per il vostro build.sbt per renderlo copiare le dipendenze in lib_managed.

Tempus fugit e IntelliJ IDEA è diventato molto meglio in questi giorni. E '2015, dopo tutto, non è vero?

Detto questo, l'ultima versione di IDEA 14.0.2 supporti SBT progetti IntelliJ fuori dalla scatola con Scala plug . Basta installare il plugin e si dovrebbe essere in grado di aprire Scala / progetti SBT senza troppi problemi.

Sto utilizzando la versione Early Access del plugin che è 1.2.67.6.EAP a partire dal momento della scrittura.

Con il plug-in solo punto in un progetto di SBT e IDEA sta per offrire una procedura guidata per aprire questo tipo di progetto.

Importa SBT progetto

A proposito di SBT-idea nel SBT 0.12.4

Per sbt 0.12.4 il file di configurazione del plugin a livello di sistema - ~/.sbt/plugins/build.sbt o PROJECT_DIR/project/plugins.sbt - dovrebbe avere le seguenti righe:

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

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

Esegui sbt gen-idea per generare i file di progetto IDEA.

la SBT-idea plugin per ulteriori informazioni up-to-date. Si può anche trovare il mio blog Importazione progetto SBT-based per IntelliJ iDEA 13 (con SBT-idea, Scala 2.11 e SBT 0,12) utile.

Per SBT 0.7

la risposta altrove in questa pagina .

Per SBT 0.10

del clone e costruire Ismael SBT-idea:

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

Crea un plugin di directory lib sbt se non ne hai già uno

mkdir -p  ~/.sbt/plugins/lib

Copia il vaso costruito in una fase in qui

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

Riavvia o reload SBT, allora è possibile eseguire gen-idea (o gen-idea with-classifiers se si desidera fonti e javadoc in IntelliJ troppo)

Fonte: Fissatrici sul gruppo messaggio .

In IntelliJ IDEA 13.x stessa

È possibile aprire un progetto SBT-based in IDEA al giorno d'oggi. Si creerà il progetto e dei moduli necessari, e tenere le dipendenze up-to-date ogni volta che si apportano modifiche agli script di build.

Ho appena passato attraverso tutto questo dolore. Trascorro giorni cercando di ottenere un ambiente adeguato e sono giunti alla conclusione che ENSIME, SBT e JRebel stanno per essere il mio ambiente di sviluppo per un certo tempo. Sì, sta andando di nuovo a Emacs, ma ENSIME lo trasforma in un po 'o un'idea con refactoring, supporto per il debugging, la navigazione, ecc Non è affatto così bello come Eclipse (Java), ma a meno che i plugin Scala funzionano meglio è il migliore che abbiamo.

Fino a quando gli ambienti di sviluppo Scala si alzano al tabacco da fiuto (Eclipse o IntelliJ) Io non ho intenzione di fastidio. Sono solo troppo buggy.

Si veda la discussione sul sito di sollevamento.

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

In quel filo, c'è un link ad un HOWTO per IntelliJ, ma anche se funziona un pò, ci sono molte questioni che lo rendono un po 'meno che utile.

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

Le risposte sono vecchi per il 2014. In IntelliJ 13.x , il plugin Scala è ver 0.41.2 (SBT è incluso).

Il mio versione SBT è 0.13.5 (terminale: sbt sbtVersion)

Vai alla cartella principale del progetto e digitare nel terminale

sbt idea

Si vedrà due nuove cartelle nascosti .idea e .idea_modules .

Poi in IntelliJ, File> Apri> selezionare il progetto. Dovrebbe aprire il progetto senza alcun problema.

Prima di iniziare a creare il vostro progetto SBT, assicurarsi che il plugin Scala viene scaricato e attivato in IntelliJ IDEA.

collegamento sotto spiega tutto quello che dovete sapere.

https://www.jetbrains.com/ help / idea / 2016,1 / getting-iniziato-con-sbt.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top