2011-12-13 105 views
2

我正在使用Scala模塊的Play框架。我已將一些代碼分解到單獨的庫中,並使用sbt publish-local在本地進行構建並將其發佈。現在我需要play dependencies來查找該庫及其依賴項。如何使Play framework 1.2.x解決由sbt本地發佈的依賴關係?

什麼我到目前爲止是這樣的,在我~/.ivy2/ivysettings.xml文件:

<ivy-settings> 
<settings defaultResolver="chain"/> 
    <resolvers> 
    <chain name="chain"> 
     <filesystem name="libraries"> 
     <ivy pattern="${ivy.settings.dir}/local/[organisation]/[artifact]/[revision]/ivys/ivy.xml"/> 
     <artifact pattern="${ivy.settings.dir}/local/[organisation]/[artifact]/[revision]/[ext]s/[artifact].[ext]" /> 
     </filesystem> 
     <ibiblio name="ibiblio" m2compatible="true" /> 
    </chain> 
    </resolvers> 
</ivy-settings> 

這使得遊戲找我的圖書館,但不幸的是它忽略依賴關係,並謊稱我不需要他們任何更多,他們可以從lib /刪除。

+0

你可以發佈ivy.xml的工件,也許從ivy的相關輸出? – oers

+0

@oers我永遠不會直接致電ivy,所以我不確定它的輸出是什麼。由sbt輸出的'ivy.xml'包含依賴關係,但strace表明'play dependencies'甚至不會讀取該文件。而是從緩存中讀取不包含任何依賴關係的xml文件。即使我刪除了ivy2緩存,它仍然會執行相同的操作(首先創建該文件)。 –

回答

2

使用--debug選項play dependencies,我發現由於某種原因,Play使用「ivy」作爲常青藤文件的工件名稱,而不是我的庫名稱。因此,作爲一種快速解決方法,由於目前我只有一個庫,因此我只是將[artifact]更改爲上述ivy元素中的實際工件名稱。我提起了Play bug report

相關問題