Play子项目中外部库的错误路径

时间:2014-12-27 09:00:28

标签: eclipse playframework-2.3

我在根项目中的文件夹子项目中有一个包含多个子项目的Play项目。一切都很好,直到我尝试将项目导入eclipse,然后执行 activator eclipse

当我导入根项目时,会出现一些错误,因为这个项目显然取决于其他(eclipsified)子项目。

它们中的每一个都有自己的Eclipse项目文件( .project .classpath ),这些文件由 activator eclipse 命令生成。因此,如果这些子项目在 lib 文件夹中包含非托管jar文件,那么尝试导入这些子项目也会失败,因为此子项目的相应元文件 .classpath 包含导入为Eclipse项目时,那些指向错误位置的jar的相对类路径条目:

<classpathentry kind="lib" path="../../subprojects/mod_service_a/lib/MyLib.jar"/>

Eclipse导入项目后不会找到此lib(没有内容副本) - 它指出两个级别太高。

播放项目布局:

    • 子项目/ mod_service_a
    • 子项目/ mod_service_b

Eclipse中导入项目的项目布局:

  • mod_service_a
  • mod_service_b

任何想法如何解决这个问题?如何在eclipse中组织Play sun项目,以便他们可以在文件夹lib中找到他们的非托管jar?

1 个答案:

答案 0 :(得分:0)

在一个非常糟糕的工作和创建软链接以满足错误的文件夹查找之后,我终于找到了一个更好的解决方案:TypeSafe SBT Eclipse插件提供了一个防止创建相对路径的选项:只需将此行添加到相应的子项目的 build.sbt

EclipseKeys.relativizeLibs := false

你得到了绝对的道路。

通常不建议使用绝对路径,但在这种情况下,它似乎是一种可行的解决方案。

有关TypeSafe SBT Eclipse插件的更多信息,请访问: https://github.com/typesafehub/sbteclipse/wiki/Using-sbteclipse