2016-09-19 46 views
3

我想使SBT與IPFS一起工作。我想將工件發佈到IPFS,然後在另一個項目中依賴它們。IPFS解析器爲sbt

在根據項目我使用這個SBT解析:

resolvers += "ipfs-iscpif" at "https://ipfs.iscpif.fr/ipns/QmXTLZWz1VQqv9nFKersuNnRgPmMEkiHuRnS8i1c8A9XSF/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協議沒有修改時間的概念,因此該報頭由網關設置爲當前日期。是否有可能讓SBT考慮在元數據(ivy.xml for ivy或Maven-matdata.xml for maven)中發佈發佈時間而不是此http頭?

最好的問候, 羅曼

編輯1: IPFS基於SBT回購將是非常不錯的。但是我認爲它不能適用於SBT和IPFS的當前狀態。 SBT依賴於http標頭Last-Modified,該標頭設置爲IPNS的當前日期,IPFS不存在。這意味着快照依賴關係在每次更新時都會更新或永遠不會更新。我花了24小時來研究這個問題,我認爲目前還沒有解決方案可以將快照工件發佈到IPFS。

回答

0

剛發現這個問題。將信息添加到上次發佈記錄的名稱API時不應該很困難,以便您可以在http頭上獲得該信息。這就是說,你有沒有發現https://github.com/magik6k/sbt-publish-ipfs