7

Ho un progetto Play che utilizza una libreria che è stata recentemente trasferita su Scala 2.11.1.Come posso risolvere i suffissi in versione incrociata in conflitto in SBT?

Ho anche aggiornato Play a Scala 2.11.1.

Quando provo ad eseguire il progetto, ottengo:

[error] Modules were resolved with conflicting cross-version suffixes in {file:/...}: 
[error] org.scalaz:scalaz-core _2.11, _2.10 
[trace] Stack trace suppressed: run last *:update for the full output. 
[error] (*:update) Conflicting cross-version suffixes in: org.scalaz:scalaz-core 

ho provato a rilevare che è la libreria che utilizza scalaz-core-2.10 utilizzando plugin di SBT-dipendenza-grafico. Tuttavia, nella struttura di grafo delle dipendenze, c'è solo un aspetto del scalaz-core:

info] | +-org.scalaz:scalaz-core_2.11:7.0.6 

Quindi io non sono sicuro che è la libreria che utilizza scalaz-core_2.10 ... Come posso rilevarlo?

Ho visto here che una volta rilevato, posso escluderlo, ma il mio problema è come rilevare quale dipendenza è da escludere.

+0

Recentemente ho avuto lo stesso problema con Akka, si è scoperto che avevo messo% anziché %% nella dipendenza Spray. Correzione che ha risolto il problema. Vorrei controllare il mio build.sbt e controllare che tutte le librerie Scala abbiano %% –

+0

L'ultimo *: aggiornamento 'dice qualcosa di utile? Forse puoi condividere il nome di una biblioteca, a meno che non sia la tua libreria privata. – lpiepiora

risposta

3

Sotto target/resolution-cache/reports/ sono il rapporto di risoluzione di Ivy per ciascuna configurazione. Cercare *-compile.xml e *-test.xml e vedere se si dispone di

<module organisation="org.scalaz" name="scalaz-core_2.10"> 
    .... 
</module> 

Questo dovrebbe dirvi il caller del modulo.