2011-08-12 12 views
11

Sono nuovo di SBT e non sono sicuro di come avviare un progetto. Qualcuno può indicarmi una guida per principianti per creare un progetto di tipo Hello World o darmi qualche indizio?Guida per principianti a SBT 0.10 e IDEA

Il mio IDE preferito è IDEA. Ho eseguito sbt-idea in base alle istruzioni su IDEA Plugins page. Al momento sono un po 'confuso perché

  • non ci sono cartelle di origine create - dove/come faccio per crearli e come farò SBT sapere dove cercare?
  • perché sta tentando di utilizzare Scala 2.8.1, quando ho già inserito scalaVersion := "2.9.0" nel file build.sbt? Ciò significa che IDEA non riconosce object HelloWorld extends App {}.
  • le istruzioni sulla pagina dei plug-in suggeriscono di modificare le opzioni di Avvio prima di "una configurazione di esecuzione (inclusa la configurazione di esecuzione predefinita)". Ci sono 13 diverse configurazioni di default per cose diverse elencate - quale cambiare? Dovrei crearne uno nuovo? Queste configurazioni predefinite sono solo per questo progetto o influenzeranno negativamente tutti i miei altri progetti che non utilizzano SBT?

Grazie.

risposta

16

questo ha funzionato per me:

Prima get SBT e il plugin Gen-idea di andare ...

  1. Scarica l'SBT-launch.jar e creare lo script per il lancio come descritto sul SBT Github wiki.
  2. Creare una directory per il nuovo progetto, come ad esempio (su linux) ~/mycode/myNewProject e il cambiamento a quella directory
  3. Esegui sbt comando. Questo dovrebbe scaricare le librerie di scala e creare una directory 'progetto' e 'destinazione'.
  4. Passare alla directory 'progetto'.
  5. Creare un nuovo file 'build.sbt' in questa directory con le seguenti righe, come descritto nella sbt-idea plugin Github wiki:

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/" 
    
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.0.0") 
    
  6. Change torna alla directory principale del progetto come ad esempio ~/mycode/myNewProject. Esegui sbt. Dovrebbe scaricare il plugin gen-idea.

  7. Dalla console sbt (che dovrebbe essere in esecuzione ora), eseguire il comando gen-idea. Dovrebbe creare le directory del progetto IDEA. Anche per me emette molti avvertimenti.

ora ottenere il plugin IDEA console SBT andare ...

  1. Aprire IDEA e installare il plugin "SBT" dal gestore dei plugin e IDEA riavvio. (Nota: questo è il plug-in IDEA, non il plugin sbt descritto sopra.) Configura il plugin SBT as described on its wiki (esegui configurazioni, posizione di sbt-launch.jar ecc.).
  2. Aprire il progetto IDEA appena generato in IDEA.
  3. Inserire il codice e altre cose nelle directory predefinite previste, come descritto nello sbt wiki under 'Directory Layout'. È necessario creare queste directory da soli - sbt non le crea automaticamente. Le directory 'src' e 'test' dovrebbero essere allo stesso livello delle directory 'project' e 'target' create da sbt.
  4. Crea un nuovo file 'build.sbt' e inseriscilo in ~/myCode/myProject (o come lo hai chiamato tu). Dal momento che sto solo cercando di capire SBT, la mia è semplice finora - solo designano ciascuno ScalaTest come una dipendenza e usa Scala 2.9:

    name := "myProject" 
    
    version := "0.1" 
    
    organization := "me" 
    
    libraryDependencies += "org.scalatest" % "scalatest_2.9.0" % "1.6.1" 
    
    scalaVersion := "2.9.0" 
    
  5. Inserire il comando reload nella console SBT nella parte inferiore dello schermo IDEA. Dovrebbe scaricare scalatest e Scala 2.9 per te. Forse hai bisogno di eseguire anche 'aggiornamento'.

+3

Grazie per la guida dettagliata e link utili. Potrebbe essere meglio mettere il file 'build.sbt' nel passaggio 5 in' ~/.sbt/plugins/'come suggerisce il wiki da allora non devi farlo per ogni progetto ... su Windows hai per creare questa directory da soli in 'Users \ yourname \\', utilizzando la riga di comando. Ad ogni modo, ora ho impostato le cartelle secondo il layout di directory nel wiki sbt, funziona benissimo! –

+0

Info: funziona bene con sbt-0.11.2 e sbt-idea 0.11.0 – ron

0

Normalmente inserisco l'src in una cartella "src/test/scala" e "src/main/scala". sbt-idea aggiungerà questa cartella come sorgente/test in idea.

sbt ha bisogno di Scala 2.8.1 ma questa versione non ha nulla a che fare con la versione del codice. Se provi a compilare qualche sorgente, sbt scaricherà Scala 2.9.0.

+0

sbt-idea non ha aggiunto alcuna cartella di origine quando l'ho eseguito. Ha messo entrambe le versioni di Scala nelle librerie esterne ma ancora non riconosce la classe App. –

4

Ho scritto uno very quick guide su di esso. È non destinato a essere una guida SBT - non c'è modo di battere il SBT Wiki per quello. Sarebbe anche inutile, dal momento che si può solo contribuire alla wiki stessa.

Ma, penso che la mia guida molto veloce ti consentirà di iniziare la sessione come desideri.

Per quanto riguarda la creazione di directory, la risposta che ho ottenuto è che SBT si aspetta che l'IDE lo gestisca - non mi piace molto quell'atteggiamento, ma un plugin può fare il lavoro. Vedrai che installo il plugin sbt eclipse solo così lo farà per me, anche se uso IDEA da solo (quando utilizzo un IDE).

Si noti inoltre che, idealmente, si utilizza sia il plugin idea per SBT che lei ha citato, e il plugin SBT per IDEA. Vedi here per la lista dei plugin.

A meno che il plugin IDEA si è evoluta molto, si ha realmente bisogno per generare una configurazione IDEA da SBT iself - IDEA non "leggere" la configurazione. Questo è quello che fa il plugin SBT per IDEA. Installalo e sbt gen-idea. Mi aspetto che risolva il problema che hai menzionato.

Si noti, tuttavia, che la versione di Scala si utilizza per compilare il progetto e la versione di Scala che SBT utilizza per sé sono diversi effetti. Questo non è un problema, è come previsto. Non sono sicuro dalla tua domanda se la versione 2.8.1 che hai menzionato è quella usata da SBT, o quella usata da IDEA - o anche quella usata per compilare il tuo progetto, indicando che qualcosa non funziona.

Dove ha si mette l'esempio che lei ha citato in ogni caso?Dovresti seguire la gerarchia di directory in stile maven, che significa metterla su src/main/scala/ e possibilmente una sottodirectory di quella relativa al pacchetto, se segui anche la convenzione Java.

E provare a compilare con sbt, per assicurarsi che funzioni, prima di procedere verso IDEA.

+0

Grazie. Ho visto la tua guida, che è stata utile, ma non sapevo che stavi solo eseguendo il plugin Eclipse per creare le directory!Non ho usato Maven prima quindi non ho molta familiarità con la struttura lì. Ho messo i miei file sorgente nella directory 'project' e non ha funzionato, ma lo fa quando li sposto nel posto giusto! –

+0

@Luigi In tal caso, dare un'occhiata alla domanda "[Scala struttura dell'applicazione] (http://stackoverflow.com/questions/5910791/scala-application-structure)". –

Problemi correlati