2016-03-27 24 views
6

Il compilatore Jetbrains Kotlin in Eclipse restituisce una cartella nascosta all'interno del plug-in del compilatore Eclipse. Questa cartella nascosta viene quindi resa disponibile attraverso il contenitore del classpath Eclipse Kotlin.Cartella di output del compilatore Kotlin in Eclipse

In bndtools è necessaria una normale cartella del file system poiché bnd può essere eseguito sia dal file system che da Eclipse. Poiché la cartella è una risorsa collegata, non esiste un modo noto per tradurla all'esterno di Eclipse.

Qualcuno sa come dire al compilatore Kotlin di inviarlo nella cartella bin?

risposta

3

Attualmente, questo non è possibile nel plug-in Eclipse di Kotlin.

Per rendere possibile l'utilizzo del codice Kotlin da Java, il plugin Kotlin produce in questa cartella i cosiddetti file di classe leggera. Questi file di classe non contengono corpi per i metodi e sono archiviati in memoria.

I file di classe reali, utilizzati per eseguire un'applicazione, vengono creati solo prima dell'avvio e vengono prodotti nella cartella di output predefinita. Per ora, non possiamo produrre file di classe su ciascun salvataggio ragionevolmente veloce in quanto non esiste alcuna compilazione incrementale nel plugin: Sentitevi liberi di aggiornare per questo problema.

+0

Grazie. Qualche modo per attivare questa creazione di quelle classi dall'esterno? –

+0

Purtroppo, anche questo non è possibile per ora. –

+0

Ma è possibile eseguire l'applicazione in modo che i file di classe debbano già essere generati in qualche modo? Non c'è davvero modo di catturarli? –

1

Dalla breve analisi del codice del plugin Kotlin, sembra che il metodo corretto sia KotlinCompiler.compileKotlinFiles. Viene chiamato in due contesti:

  1. KotlinBuilder.build - questo è quello richiamato nella build del progetto; fa uno stack di chiamate (o meglio un hack ...) per verificare se viene chiamato dallo LaunchConfigurationDelegate e, a seconda dei risultati, compila l'intero progetto (tramite il suo divertimento privato compileKotlinFiles), o crea solo degli stub in memoria.
  2. KotlinCompilerUtils.compileWholeProject - questo infatti viene chiamato dal 1 .; bel metodo statico, perfetto per l'abuso fino a quando il problema non viene risolto correttamente nel plugin. :)

Quindi, mi piacerebbe utilizzare il metodo da 2 avvolto in una maniera simile a come compileKotlinFiles da file in 1.