2013-03-23 54 views
2

我正在尋找配置了gradle(github上的netflix/karyon)的項目,並且能夠輕鬆構建戰爭(「gradle war」)。到目前爲止,這已經很好了。Gradle - 如何從魔法緩存中提取依賴關係?

戰爭在哪裏?這很容易,只是做find . -type f \(-name "*.war" \) ...猜測也許調試旗會告訴我呢?

這場戰爭有什麼?只有示例項目的代碼很好,很好,很輕便。你會期待什麼。

依賴關係在哪裏?無處在現場。我確實有一個很好的主意,他們在隱藏的gradle dot目錄中的某個神奇緩存中。

如何獲取依賴關係列表?

我想我可以'gradle clean & & gradle war> out'並檢查maven.org GET文件?我嘗試了「gradle dependencies」,它「構建成功」,但沒有列出任何依賴關係。

我也嘗試了eclipse插件,它「工作」,創建一個.project文件。但這就是它所做的一切。沒有向構建路徑添加任何內容,也沒有提及任何庫。

是的我知道它運行,因爲我可以使用gradle jetty插件成功運行webapp。 (亦幻)

所以問題:

  1. 是否有gradle這個命令爲「找出的依賴,並列出它們或更好,但他們解壓到一個目錄」

  2. 爲什麼沒有Eclipse插件只是工作? (A)爲了在eclipsify步驟中正確識別源代碼需要做些什麼?(B)只是一個問題,Eclipse如何知道jar文件的魔力位置和編碼?

  3. 有沒有一個jboss插件for gradle?或者將一個正在運行的gradle/jetty項目移植到一個不會導致過早老化的正在運行的gradle/jboss項目的最佳實踐?

回答

6

在我看來就像細胞核是一個多層次的項目和根項目有沒有依賴性,因此你得到gradle dependencies沒有輸出沒有給出輸出根項目。所以你應該用gradle :karyon-core:dependencies去得到更有趣的東西。

搖籃一直依賴在其高速緩存,位於~/.gradle/caches/artifacts-<number>/filestore但它是所有項目不只是一個特定的緩存。如果你真的需要所有依賴拷貝到一個目錄,你可以使用類似於這一個副本:

task copyDeps(type: Copy) { 
    from configurations.compile 
    into "$projectDir/deps" 
} 

然後gradle copyDeps都將編譯依賴複製到deps目錄中的項目。

如果你堅持有一個lib目錄下所有的依賴關係,那麼你需要指定一個flat dir repository

repositories { 
    flatDir { 
     dirs 'lib' 
    } 
} 

可惜我不能幫你與其他兩個問題。