我有几个 java项目(Abc.Domain
,Abc.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.Domain
中Abc.Framework
和Abc.Rest.Api
的类和服务。我在Abc.Domain
中的Abc.Framework
Java Build Path中添加了Abc.Rest.Api
和Eclipse
项目,尝试了这一点。项目构建正常,我可以访问Abc.Domain
中Abc.Framework
和Abc.Rest.Api
的所有类,但是当我运行或调试Abc.Rest.Api
时,playframwork的sbt无法访问找到那些类和相关的导入,导致运行时异常。
我搜索了这个问题,我发现的解决方案是
将Abc.Domain
和Abc.Framework
发布到maven or ivy
存储库并在sbt中添加它们如下
libraryDependencies ++= Seq(
"org.apache.derby" % "derby" % "10.4.1.3",
"org.hibernate" % "hibernate-entitymanager" % "3.6.9.Final"
)
在项目的根目录中创建一个lib /目录,然后添加jar
文件到该目录。它们会自动添加到enter code here
应用程序类路径
通过执行上述任一操作,我不再能够对Abc.Domain和Abc的类和服务进行实时调试和源代码导航。框架。
我也在IntellijIdea
中尝试了这一点,具有讽刺意味的是,在IntellijIdea中,你无法直接将java模块作为依赖项添加到playframework java模块中。
任何人都可以指导我正确的方向将java项目作为依赖项添加到我的playframework java项目中,而不必通过使用 Eclipse 来放弃java项目的调试和源代码导航 > IntellijIdea
答案 0 :(得分:0)
Play框架支持模块。我认为你必须为你的项目创建模块,以便访问并将它们包含在你的代码库中。
除此之外,我认为添加lib是一个选项,但是您的源代码导航和更改将无法正常工作。
答案 1 :(得分:0)
只需创建2个罐子 - 一个带有编译输出,第二个带有源,我不知道它在Eclipse中是如何工作的,无论如何,如果给定罐子丢失,你只能Attach sources
。
你可以在30秒内完成它(所以肯定比配置自定义maven repo更快),有时需要执行play idea
命令强制IDE重新索引非托管依赖项的代码,但最后你有可能阅读模块的源代码,根据需要调试,预览方法的javadoc等等。