2013-04-10 113 views
1

播放!框架帶有大量的jar庫。我正在使用1.7版的apache commons-codec for Play!應用。但是玩!已經發布1.4版本和其他一些老版本。我已將commons-codec-1.7.jar放在lib文件夾中,並且'eclipsified'使jar文件位於類路徑中。但是當我在Eclipse中展開Project Explorer時,我發現應用程序引用了版本1.7和1.4。我的問題是播放!:使用與本地存儲庫不同的jar版本

  1. 如何刪除版本1.4被引用?
  2. 儘管版本1.3和1.2出現在[PLAY_HOME]/repository/local
  3. 這是一個合作項目,爲什麼該應用選擇版本1.4?我想確保一旦我在git中推動代碼並且我的同事將其拉入,他們不需要做同樣的「黑客」,只需「清理」和「編譯」。如何做呢?

順便說一句,我正在使用Play! 2.0.4

回答

1

commons-codec加到你的Build.scala,你會沒事的。依賴關係將是正確的,因爲指定的依賴關係將覆蓋默認的依賴關係。

val appDependencies = Seq(
    "commons-codec" % "commons-codec" % "1.7" 
) 
  1. 您不必刪除 1.4。版本1.7將現在生效。
  2. 這是由它們在類路徑中出現的順序造成的。
  3. play compile會做到這一點。而且你將不得不再次讓項目失去作用。

不要忘記從lib文件夾中刪除commons-codec。如上所述,它會自動下載並放入類路徑中。

+0

謝謝。可能是這是最好的解決方案。但有沒有辦法避免編譯時下載?我的意思是,如果我將文件保存在** lib **目錄和* eclipsify *中,用戶將從項目中獲取jar文件,對吧?通過這種方式,他們將能夠共享(可以通過拇指驅動器)並運行項目,而無需擔心互聯網連接。 – 2013-04-10 10:55:35

+0

@khalid如果你這樣做,你知道你也獲得了所有的傳遞依賴。就我個人而言,我不喜歡將二進制文件添加到VCS(在這種情況下爲git)。如果你喜歡這種方式,添加到'lib'就可以工作,但正如我所說的,傳遞依賴可能不正確。 – maba 2013-04-10 11:00:59

相關問題