In aggiunta alla risposta di Jacek, un altro modo per impostare la directory .ivy2
era di utilizzare l'attività sbt ivyConfiguration
. Restituisce le impostazioni di configurazione relative all'edera, compreso il percorso per la casa dell'edera (quella che per impostazione predefinita è ~/.ivy2
).
Basta aggiungere queste poche righe al file build.sbt
nel progetto:
ivyConfiguration ~= { originalIvyConfiguration =>
val config = originalIvyConfiguration.asInstanceOf[InlineIvyConfiguration]
val ivyHome = file("./.ivy2")
val ivyPaths = new IvyPaths(config.paths.baseDirectory, Some(ivyHome))
new InlineIvyConfiguration(ivyPaths, config.resolvers, config.otherResolvers,
config.moduleConfigurations, config.localOnly, config.lock,
config.checksums, config.resolutionCacheDir, config.log)
}
Esso restituisce una nuova configurazione di edera identica a quella originale, ma con la strada giusta per l'home directory edera (qui ./.ivy2
, quindi verrà posizionato proprio accanto al file build.sbt
). In questo modo, quando sbt usa l'attività ivyConfiguration
per ottenere la configurazione di edera, il percorso della directory .ivy2
sarà quello impostato sopra.
Ha funzionato per me utilizzando sbt 0.13.5
e 0.13.8
.
Nota: per le versioni SBT 0.13.6
e, soprattutto, la costruzione del InlineIvyConfiguration
ha bisogno di un ulteriore parametro per evitare di essere contrassegnato come deprecato, così si potrebbe desiderare di cambiare l'ultima riga in:
new InlineIvyConfiguration(ivyPaths, config.resolvers, config.otherResolvers,
config.moduleConfigurations, config.localOnly, config.lock,
config.checksums, config.resolutionCacheDir, config.updateOptions, config.log)
(si noti l'ulteriore config.updateOptions
)
Finora ho cercato di scavare lo script di avvio (activator.bat su Windows) ma fa riferimento solo a '' '% UserProfile%' '' per '' 'CFG_FILE_HOME''' e' '' CFG_FILE_VERSION''', e anche cambiando ciò non ha alcun effetto su dove viene creata la directory ''. .activator'''. – enlait