2011-08-23 4 views
7

Sono nuovo di Scala. Tuttavia, ho creato un programma di dimensioni medie con Scala 2.9.0. Ora voglio utilizzare una libreria open source che è disponibile solo per Scala 2.7.7.Uso di una libreria Scala che è disponibile solo per una versione precedente di Scala

È possibile utilizzare questa libreria 2.7.7 nel mio programma Scala 2.9.0? Come posso farlo? Ho già dato un'occhiata a sbt ma non ci sono riuscito. Qualcuno ha un esempio di mondo ciao per questo?

+0

Quale libreria stai utilizzando? – soc

risposta

8

In linea di principio dovrebbe essere possibile utilizzare un classloader personalizzato per il contenitore 2.7.7 e i wrapper personalizzati. Ma praticamente, dal momento che la libreria è open source, è molto probabile che sia meno lavoro ricompilarla con 2.9 e apportare le modifiche richieste. (Di solito non sono molti.)

+6

Ci sono stati alcuni cambiamenti abbastanza grandi tra 2.7 e 2.8, comprese incompatibilità di origine come la nuova libreria di collezioni. Se si sceglie di aggiornare la libreria open source, questo post potrebbe essere una guida utile: http://stackoverflow.com/questions/1243794/what-are-the-biggest-differences-between-scala-2-8-and- scala-2-7/2550803 # 2550803 Guardando al futuro, il team di Scala sta mettendo più enfasi sulla retrocompatibilità e sugli strumenti di migrazione. –

+0

@Kipton Barros - Strutturalmente i cambiamenti erano piuttosto grandi, ma la maggior parte delle porte finiva per essere abbastanza semplice e il codice _unless_ meccanico estendeva un sacco di classi di collezioni. –

3

Typesafe ha un'anteprima anticipata di un gestore di migrazione (http://typesafe.com/technology/migration-manager) che promette di segnalare e risolvere le incompatibilità binarie. Apparentemente le prime anteprime riportano solo le incompatibilità, ma potrebbe valerne la pena.

1

L'approccio migliore sarebbe utilizzare una libreria gestita o aggiornare il codice.

Se si utilizza la seconda opzione, compilare il codice con le bandiere -deprecation e -Xmigration.

Questo ti dice cosa è necessario cambiare tra le versioni.