3

sbt publish-localでjarファイルのローカルコピーを生成するために使用したプロジェクトがあるとします~/.ivy2/local

同じマシン上の別のsbtプロジェクトは、依存関係を満たすためにこれらのjarを正常に見つけることができます。ただし、そのプロジェクトでオプションを使用した場合retrieveManaged := true、sbtはjarファイルを~/.iv2/localディレクトリlib_managedにコピーしません。

どうすればこれを実現できますか?(この動作は意図されたものですか?)

(私はsbt 0.12.1を使用しています。)

4

1 に答える 1

2

私は同じ設定を使用しています。ローカルで公開された依存関係を更新するときは、最初に管理対象jarを削除してから、更新を実行します。

$ rm -r lib_managed/jars/my-package-prefix
$ sbt test:compile

test:compilejarファイルが欠落していることがわかり、updateそれ自体で実行します)。

古いバージョンのsbtでは、-SNAPSHOTバージョンを使用するときに問題が発生したと思いますが、sbt0.12ではこの問題は発生していません。

まれに、Ivyキャッシュで何かが混乱し、どういうわけか更新を強制できない場合があります。これはおそらく、破損したIvyメタデータファイルが使用された場合です。次に、唯一の解決策は、依存関係のすべての発生をとから消去し~/.ivy2/local~/.ivy2/cache再公開して、再更新することです。

于 2013-01-21T21:51:28.200 に答える