2013-06-19 14 views
6

Devo configurare Ivy lock strategy in build sbt.Come configurare la strategia di blocco di Ivy in Sbt

ho cercato di mettere in externalIvySettings(baseDirectory(_/"ivysettings.xml"))Build.scala

ivysettings.xml:

<ivysettings> 
    <settings defaultResolver="default"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/> 
    <lock-strategies>no-lock</lock-strategies> 
</ivysettings> 

Ma in questo caso sbt non permette di risolvere le dipendenze (suppongo perché resolver sono protetti da resolver da ivysettings).

Come è possibile configurare la strategia di blocco in Build.scala?

risposta

2

Dopo aver trascorso un po 'di tempo ho trovato la soluzione. I copia-incollato ivyConfiguration da defaultSettings e sostituito parametro GlobalLock con Nessuno (ho bisogno di disabilitare il blocco):

ivyConfiguration <<= (externalResolvers, ivyPaths, offline, checksums, appConfiguration, target, streams) map { (rs, paths, off, check, app, t, s) => 
     val resCacheDir = t/"resolution-cache" 
     new InlineIvyConfiguration(paths, rs, Nil, Nil, off, None, check, Some(resCacheDir), s.log) 
     } 

Sembra una soluzione per me, ma funziona. Ora non c'è il blocco dell'edera. Per favore aiutami a migliorare la soluzione se sai come, dato che sono nuovo di sbt.

Problemi correlati