2011-08-30 77 views
1

具體來說,我想升級到更新版本的httpcore jar(我有httpcore-4.0.1.jar,並且需要包含org.apache.http.entity.mime包的更新版本),而無需升級整個grails項目。什麼是升級單個grails項目庫jar文件的正確方法?

從我迄今爲止發現的最佳實踐似乎指出,在依賴部分的BuildConfig.groovy中做了一些事情,但是我還沒有找到任何說明我應該如何格式化依賴聲明的文檔(或者甚至確認這將是正確的做法)。它似乎是最接近Rails項目的Gemfile,我更熟悉它,這就是爲什麼它是我目前正在處理這個問題的地方。如果還有其他更好的地方可以定義,請告訴我。

我發現了一些建議,.jar文件可以簡單地複製到lib文件夾中並將被拾取,但我擔心默認庫的.jar文件可能會被覆蓋和/或未被正確註冊,如果我這樣做。

+0

對不起,我很困惑你的問題。您是否在問如何將特定版本的特定版本的jar添加到您的Grails項目中?或者你問如何將特定版本的特定jar作爲另一個jar的依賴項? – Randyaa

回答

4

如果我理解正確,httpcore是Grails本身的依賴關係,並且您希望升級版本,而不更改Grails本身的版本?你可以通過加入以下內容來達到這個目的BuildConfig.groovy

grails.project.dependency.resolution = { 
    // inherit Grails' default dependencies 
    inherits("global") { 
     // exclude the version of httpcore provided by Grails 
     excludes 'httpcore' 
    } 

    dependencies { 
     // Use version 4.1.3 of the library instead 
     compile 'org.apache.httpcomponents:httpcore:4.1.3' 
    } 
} 
+0

事實證明,我不需要升級httpcore,而是需要添加httpmime,但是這肯定使我朝着正確的方向發展,所以謝謝。 –

+0

我在理解時遇到的一件事是'org.apache.httpcomponents:httpcore:4.1.3'行如何映射到任何東西。我可以將'httpcore'和'4.1.3'映射到jar文件名和版本,但是沒有包含'org.apache.httpcomponents'的實際包。原來,它映射到search.maven.org上的groupId,如果我在BuildConfig.groovy文件中取消註釋mavenLocal()和mavenCentral(),它會自動將這些添加到我的項目中。 –

+0

請注意,我錯誤地認爲那些.jar文件已被自動添加到/ lib目錄中。他們已被手動添加。以這種方式指定這些庫似乎並不需要將任何副本放在/ lib目錄中。 –

相關問題