4

SBT を IPFS で動作させようとしています。成果物を IPFS に公開し、別のプロジェクトで成果物に依存したいと考えています。

依存するプロジェクトでは、この SBT リゾルバーを使用しています。

resolvers += "ipfs-iscpif" at "https://ipfs.iscpif.fr/ipns/QmXTLZWz1VQqv9nFKersuNnRgPmMEkiHuRnS8i1c8A9XSF/ivy"

依存関係が各更新または ;clean; でダウンロードされることを除いて、すべてが機能しています。コンパイル。Ivy キャッシュがまったく機能していません。

> ;clean;compile
[success] Total time: 0 s, completed 19 sept. 2016 13:19:41
[info] Updating {file:/tmp/test/}test...
[info] Resolving fr.iscpif.gridscale#http_2.11;1.88-SNAPSHOT ...
[warn] Unable to reparse fr.iscpif.gridscale#http_2.11;1.88-SNAPSHOT from ipfs-iscpif, using Mon Sep 19 13:19:43 CEST 2016
[info] Resolving fr.iscpif.gridscale#gridscale_2.11;1.88-SNAPSHOT ...
[warn] Unable to reparse fr.iscpif.gridscale#gridscale_2.11;1.88-SNAPSHOT from ipfs-iscpif, using Mon Sep 19 13:19:43 CEST 2016
[info] Resolving jline#jline;2.12.1 ...
[info] downloading https://ipfs.iscpif.fr/ipns/QmXTLZWz1VQqv9nFKersuNnRgPmMEkiHuRnS8i1c8A9XSF/ivy/fr/iscpif/gridscale/http_2.11/1.88-SNAPSHOT/http_2.11-1.88-20160919.103956-1.jar ...
[info]  [SUCCESSFUL ] fr.iscpif.gridscale#http_2.11;1.88-SNAPSHOT!http_2.11.jar (86ms)
[info] downloading https://ipfs.iscpif.fr/ipns/QmXTLZWz1VQqv9nFKersuNnRgPmMEkiHuRnS8i1c8A9XSF/ivy/fr/iscpif/gridscale/gridscale_2.11/1.88-SNAPSHOT/gridscale_2.11-1.88-20160919.103953-1.jar ...
[info]  [SUCCESSFUL ] fr.iscpif.gridscale#gridscale_2.11;1.88-SNAPSHOT!gridscale_2.11.jar (92ms)
[info] Done updating.
[success] Total time: 3 s, completed 19 sept. 2016 13:19:44
> ;clean;compile
[success] Total time: 0 s, completed 19 sept. 2016 13:19:45
[info] Updating {file:/tmp/test/}test...
[info] Resolving fr.iscpif.gridscale#http_2.11;1.88-SNAPSHOT ...
[warn] Unable to reparse fr.iscpif.gridscale#http_2.11;1.88-SNAPSHOT from ipfs-iscpif, using Mon Sep 19 13:19:45 CEST 2016
[info] Resolving fr.iscpif.gridscale#gridscale_2.11;1.88-SNAPSHOT ...
[warn] Unable to reparse fr.iscpif.gridscale#gridscale_2.11;1.88-SNAPSHOT from ipfs-iscpif, using Mon Sep 19 13:19:45 CEST 2016
[info] Resolving jline#jline;2.12.1 ...
[info] downloading https://ipfs.iscpif.fr/ipns/QmXTLZWz1VQqv9nFKersuNnRgPmMEkiHuRnS8i1c8A9XSF/ivy/fr/iscpif/gridscale/http_2.11/1.88-SNAPSHOT/http_2.11-1.88-20160919.103956-1.jar ...
[info]  [SUCCESSFUL ] fr.iscpif.gridscale#http_2.11;1.88-SNAPSHOT!http_2.11.jar (86ms)
[info] downloading https://ipfs.iscpif.fr/ipns/QmXTLZWz1VQqv9nFKersuNnRgPmMEkiHuRnS8i1c8A9XSF/ivy/fr/iscpif/gridscale/gridscale_2.11/1.88-SNAPSHOT/gridscale_2.11-1.88-20160919.103953-1.jar ...
[info]  [SUCCESSFUL ] fr.iscpif.gridscale#gridscale_2.11;1.88-SNAPSHOT!gridscale_2.11.jar (93ms)
[info] Done updating.
[success] Total time: 1 s, completed 19 sept. 2016 13:19:46

jarは毎回ダウンロードされます。長い調査の結果、http ヘッダー "Last-Modified" が原因のようです。IPFS プロトコルは変更時間の概念がないため、このヘッダーはゲートウェイによって現在の日付に設定されます。この http ヘッダーの代わりに、メタデータ (ivy の場合は ivy.xml、maven の場合は maven-metdata.xml) で公開された公開時刻を SBT に考慮させることはできますか?

よろしく、 ロマン

編集 1: IPFS ベースの SBT リポジトリは非常に優れています。しかし、SBT や IPFS の現状ではうまくいかないと思います。SBT は、IPNS の現在の日付に設定され、IPFS には存在しない http ヘッダー Last-Modified に依存しています。スナップショットの依存関係が更新のたびに更新されるか、まったく更新されないことを意味します。私は過去 24 時間をこのテーマに費やしましたが、スナップショット アーティファクトを IPFS に公開する解決策は今のところないと思います。

4

1 に答える 1