播放!:使用与本地存储库不同的jar版本
问题描述:
播放!框架带有大量的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.4被引用?
- 尽管版本1.3和1.2出现在[PLAY_HOME]/repository/local
- 这是一个合作项目,为什么该应用选择版本1.4?我想确保一旦我在git中推动代码并且我的同事将其拉入,他们不需要做同样的“黑客”,只需“清理”和“编译”。如何做呢?
顺便说一句,我正在使用Play! 2.0.4
答
将commons-codec
加到你的Build.scala
,你会没事的。依赖关系将是正确的,因为指定的依赖关系将覆盖默认的依赖关系。
val appDependencies = Seq(
"commons-codec" % "commons-codec" % "1.7"
)
- 您不必删除版 1.4。版本1.7将现在生效。
- 这是由它们在类路径中出现的顺序造成的。
-
play compile
会做到这一点。而且你将不得不再次让项目失去作用。
不要忘记从lib
文件夹中删除commons-codec
。如上所述,它会自动下载并放入类路径中。
谢谢。可能是这是最好的解决方案。但有没有办法避免编译时下载?我的意思是,如果我将文件保存在** lib **目录和* eclipsify *中,用户将从项目中获取jar文件,对吧?通过这种方式,他们将能够共享(可以通过拇指驱动器)并运行项目,而无需担心互联网连接。 – 2013-04-10 10:55:35
@khalid如果你这样做,你知道你也获得了所有的传递依赖。就我个人而言,我不喜欢将二进制文件添加到VCS(在这种情况下为git)。如果你喜欢这种方式,添加到'lib'就可以工作,但正如我所说的,传递依赖可能不正确。 – maba 2013-04-10 11:00:59