6

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ですか?

4

1 に答える 1

2

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

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が初めてなので、方法を知っていれば解決策を改善するのを手伝ってください。

于 2013-06-20T08:01:42.730 に答える