2011-06-10 40 views
1

我有一種情況,我需要放置來自不同第三方來源的lib文件夾下的非常大量的罐子,並且應該可以工作。但是如果我可以在project_root/lib文件夾下創建子文件夾來組織和分組屬於不同第三方源的不同罐子,那將會好得多。這使得在新版本的第三方項目出現時更容易管理和更新罐子。這是可能的嗎?我該怎麼做?在哪裏把相關的罐子放在它自己的文件夾中,在播放框架項目?

回答

3

自從開始使用Play以來,我儘量不使用lib文件夾作爲jar! 1.2它有它自己的依賴管理,使用該文件夾解決依賴關係。所以,我所做的就是創建一個名爲'jar'的文件夾並將它們放在那裏。然後,您可以按照組織名稱在該文件夾下安排罐子。

所以,如果你把一個罐子在「罐子/ my.org /我的模塊-1.2.jar」你需要這在dependencies.yml文件:

require: 
    - play 
    - my.org -> my-module 1.2 

repositories: 
    - local: 
    type:  local 
    artifact: "${application.path}/jars/[organisation]/[artifact]-[revision].[ext]" 
    contains: 
     - my.org -> * 

您必須列出每個org在'contains:'下,你想從jar文件夾中解析出來。

+0

偉大的提示,亞倫。使用lib文件夾解析依賴關係是什麼意思? – opensas 2011-09-17 13:18:07

+1

在Play中運行依賴性任務時! 1.2它將解決項目的所有依賴關係,並將jar放在lib文件夾中。 – Aaron 2012-01-18 17:08:16

1

只是爲了讓Aaron的答案更多一點。當直接在工件行中引用jar文件時,什麼在擾亂我,並不理解可能有多個工件行。 因此,舉例來說,我能做到這一點:

require: 
    - play 
    - my.org -> mylib 1.2 
    - my.org2 -> mylib2 1.3 

repositories: 
    - custom-lib: 
    type:  local 
    artifact: "${application.path}/jars/mylib-1.2.jar" 
    artifact: "${application.path}/jars/mylib2-1.3.jar" 

    contains: 
     - my.org -> * 
     - my.org2 -> * 

和運行發揮依賴當它把罐子lib目錄中,並表示,他們無論是從自定義的lib庫來了。

所以它通過實驗似乎對我有用,但我很想知道這是否是一種真正有效的方法,因爲我在文檔中沒有看到任何說明可以有多個工件線的任何東西。

相關問題