2013-06-19 7 views
6

sbtビルドでIvy lock strategyを設定する必要があります。SbtでIvyのロック戦略を設定する方法

私は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> 

しかし、この場合にはSBTは、依存関係を(リゾルバがivysettingsからリゾルバによって遮蔽されているので、私は仮定)を解決することはできませんが。

Build.scalaでロック戦略を設定するにはどうすればよいですか?

答えて

2

時間を費やして解決策を見つけました。私はdefaultSettingsからivyConfigurationを貼り付け、コピーして(私はロックを無効にする必要があります)なしでGlobalLockパラメータを置き換える:

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) 
     } 

それは私のための回避策のように見えますが、それは動作します。今、アイビーロックはありません。 あなたが知っているなら、私がsbtを初めて使うので解決策を改善するのを助けてください。

関連する問題