2

几天以来,我正在尝试在游戏项目中使用 Joda-time 1.6.2。我知道播放框架已经随 Joda-time 2.1 一起提供,根据 joda-time 站点,它应该与 1.6.2 兼容。

我正在尝试编写一个应用程序,该应用程序向用户询问 LocalDateTime 并使用 morphia 将具有属性的类保存在 MongoDB 上。

我遇到了一个问题,我必须使用当前正在使用 joda-time 1.6.2 的类,并且我无法更改它的依赖关系,也无法将其更新到 2.1。由于我没有使用 joda-Time 2.1,是否有可能从 Play Framework 2.1 中删除这种依赖关系?所以我可以使用 1.6.2?或者至少告诉 play 我只想在我的项目中使用 1.6.2 版本?

到目前为止我已经尝试过:

  • 从缓存依赖项中删除 jodatime 文件夹(当然这不会起作用,因为它总是会再次下载)。
  • 在项目依赖项上插入 joda-time 1.6.2(手动和管理方式)。
  • 搜索调用核心依赖项的位置,以便我可以删除它(到目前为止还没有运气)。

忘了提到我面临的问题是当数据到达要保存的 morphia 时,我创建了一个具有 4 个 joda-time 字段的全新且格式良好的类并不断收到此错误:

[MappingException: Error mapping field:TimeOfDay.TimeStart] 

这发生在MorphiaObject.datastore.save(pAccess);

4

1 回答 1

2

我也一直在研究依赖管理: Play Framework core dependency management/exclusion

并有一个指向正确方向的指针。

基本上你想修改你的 Build.scala,并使用显式的 deps 重新定义你的 appDependencies 并使用 .exclude()。您可能需要将 play 本身声明为依赖项(如上面的链接中所示),然后明确排除冲突的 joda 时间。

您还可以使用“依赖项”命令在播放控制台中查看每个依赖项带来了什么。

于 2013-04-09T23:03:11.140 回答