如何添加java项目依赖项来播放框架2.2.1 java项目

时间:2014-02-03 14:26:40

标签: java eclipse intellij-idea playframework-2.2

我有几个 java项目Abc.DomainAbc.Framework等)我最近创建了一个新的 playframework 2.2.1 java项目Abc.Rest.Api)。我使用Eclipse作为IDE(也在IntellijIdea中尝试过)。

我的代码库的层次结构如下所示

/POC (Empty project)

    /Abc.Domain (Java project/module)

    /Abc.Framework (Java project/module)

    /Abc.Rest.Api (play2 for java project/module)

我想访问Abc.DomainAbc.FrameworkAbc.Rest.Api的类和服务。我在Abc.Domain中的Abc.Framework Java Build Path中添加了Abc.Rest.ApiEclipse项目,尝试了这一点。项目构建正常,我可以访问Abc.DomainAbc.FrameworkAbc.Rest.Api的所有类,但是当我运行或调试Abc.Rest.Api时,playframwork的sbt无法访问找到那些类和相关的导入,导致运行时异常。

我搜索了这个问题,我发现的解决方案是

  1. Abc.DomainAbc.Framework发布到maven or ivy 存储库并在sbt中添加它们如下

    libraryDependencies ++= Seq(    
    "org.apache.derby" % "derby" % "10.4.1.3",    
    "org.hibernate" % "hibernate-entitymanager" % "3.6.9.Final"    
    )
    
  2. 在项目的根目录中创建一个lib /目录,然后添加jar 文件到该目录。它们会自动添加到enter code here 应用程序类路径

  3. 通过执行上述任一操作,我不再能够对Abc.Domain和Abc的类和服务进行实时调试源代码导航。框架。

    我也在IntellijIdea中尝试了这一点,具有讽刺意味的是,在IntellijIdea中,你无法直接将java模块作为依赖项添加到playframework java模块中。

    任何人都可以指导我正确的方向将java项目作为依赖项添加到我的playframework java项目中,而不必通过使用 Eclipse 来放弃java项目的调试和源代码导航 > IntellijIdea

2 个答案:

答案 0 :(得分:0)

Play框架支持模块。我认为你必须为你的项目创建模块,以便访问并将它们包含在你的代码库中。

除此之外,我认为添加lib是一个选项,但是您的源代码导航和更改将无法正常工作。

答案 1 :(得分:0)

只需创建2个罐子 - 一个带有编译输出,第二个带有源,我不知道它在Eclipse中是如何工作的,无论如何,如果给定罐子丢失,你只能Attach sources

你可以在30秒内完成它(所以肯定比配置自定义maven repo更快),有时需要执行play idea命令强制IDE重新索引非托管依赖项的代码,但最后你有可能阅读模块的源代码,根据需要调试,预览方法的javadoc等等。