2012-01-08 15 views
5

Ho creato un progetto Lift ifor IDEA 11 Community Edition utilizzando un plug-in sbt-idea. Compilano e funzionano bene con la console SBT dei plugin SBT, sono anche in grado di eseguire il debug tramite la creazione della corretta configurazione "Remote".Come creare una configurazione di esecuzione SBT in IntelliJ IDEA 11 Community Edition?

Ma come si crea una configurazione di esecuzione SBT?

Non voglio digitare ogni volta "container: start" nella console SBT, voglio eseguire l'avvio utilizzando un pulsante Esegui/Debug.
Impossibile trovare un tipo di configurazione SBT (come se fosse disponibile un tipo "Maven"), e quando provo ad aggiungere la configurazione basata su "Tipo di applicazione" non posso specificare la classe principale.

C'è anche nessun tipo "Scala Compilation Server" disponibile (non riesco a vederlo nella lista dei tipi di configurazione disponibili), quindi non posso utilizzare soluzioni come questo https://stackoverflow.com/a/6131737/705819/
Ci sono delle azioni specifiche che dovrebbero essere fatte per mostrare il tipo "Scala Compilation Server"? Oppure è disponibile solo nella versione completa di IDEA?

AGGIORNAMENTO: Sto anche usando JRebel per il mio progetto. Senza una corretta configurazione di esecuzione devo eseguire SBT con JRebel tramite i parametri VM e eseguire il debug tramite la configurazione remota - quindi mi fa riavviare il debugger ogni volta che aggiorno il codice (perché Jrebel ricarica la classe) invece di fare semplicemente clic sul pulsante "Debug with Jrebel" (grazie al plug-in IDEA di Jrebel). È molto fastidioso, per favore aiuto!

+1

Aggiungi 'alias cs = container: start' a' .sbtrc' per evitare alcune sequenze di tasti. – retronym

risposta

1

Quanto del contenitore servlet è necessario? Consiglierei di scrivere un normale metodo principale che avvia un molo incorporato.

Aggiungere questo ai vostri impostazioni di generazione per aggiungere Jetty al classpath di prova:

libraryDependencies += "org.mortbay.jetty" % "jetty" % "6.1.22" % "test" 

Poi prendere un code snippet from here per iniziare Jetty:

È possibile impostare un pre-run action per questa configurazione Esegui per eseguire sbt package , che creerà una WAR.

+0

Grazie mille! Ho scritto un metodo principale per il jetty 8 (api ha leggermente modificato http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty) e ha funzionato! L'ultima cosa: sto ancora usando una console SBT in parallelo con il debug (eseguo il comando "~ compile"), perché JRebel richiede una continua compilazione delle fonti per il suo corretto lavoro. Speravo di poter assegnare un'azione SBT prima del lancio "~ compile", ma non esiste questa opzione. Forse puoi suggerire una soluzione alternativa per questo? – Alexzander

+1

Ho lo stesso problema, ma questa soluzione non ha funzionato per me, perché non scrivo affatto un'applicazione web. – Arne