2013-04-10 114 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

相关问题