2016-02-23 14 views
8

Come posso eseguire Kotlin REPL nel contesto del mio progetto Maven?Esegui Kotlin REPL dal contesto del mio progetto Maven?

Questo funziona, ma è brutto:

kotlinc-jvm -cp target/classes/:`ruby -e "puts Dir['target/**/*.jar'].join(':')"` 

ho provato diverse variazioni sul seguente (dopo aver utilizzato Maven per copiare il JAR compilatore come una dipendenza), ma non funziona niente (Error: Could not find or load main class org.jetbrains.kotlin.runner.Main):

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.1.1</version> 
    <executions> 
    <execution> 
    <goals> 
     <goal>exec</goal> 
    </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <executable>java</executable> 
    <arguments> 
     <argument>-classpath</argument> 
     <classpath/> 
     <argument>-classpath</argument> 
     <argument>${project.basedir}/target/dependency/kotlin-compiler-1.0.0.jar</argument> 
     <argument>org.jetbrains.kotlin.runner.Main</argument> 
    </arguments> 
    </configuration> 
</plugin> 

risposta

4

prova K2JVMCompiler invece, dal momento che è attualmente l'entrypoint per REPL in kotlin-compiler.jar:

<configuration> 
    <executable>java</executable> 
    <arguments> 
     <argument>-classpath</argument> 
     <classpath/> 
     <argument>-classpath</argument> 
     <argument>${project.basedir}/target/dependency/kotlin-compiler-1.0.0.jar</argument> 
     <argument>org.jetbrains.kotlin.cli.jvm.K2JVMCompiler</argument> 
    </arguments> 
    </configuration> 
+0

Grazie! Questo fa sì che Maven trovi la REPL. Tuttavia, il REPL non può prendere input e solo blocchi. Immagino che debba generare un nuovo processo. [Questo] (http://stackoverflow.com/questions/4668839/maven-and-exec-forking-a-process) potrebbe aiutarmi, ma non l'ho ancora testato. In alternativa, forse c'è un modo specifico di Kotlin per fare questo? Penserei che questo sarebbe un caso d'uso abbastanza comune per il REPL di Kotlin ... –

+1

Attualmente non possibile, ma questo è in fase di lavorazione al momento. Puoi aspettarti notizie in poche settimane. Aggiornerò la risposta allora –

+1

Non sono mai stati fatti progressi (caricamento di REPL in contesto Maven)? Sto rivalutando Kotlin per un nuovo progetto dopo una lunga pausa e questo potrebbe essere un fattore da considerare. Grazie! –

Problemi correlati