Playframework 2.0 Play 2.0应用程序的依赖关系管理

Playframework 2.0 Play 2.0应用程序的依赖关系管理,playframework-2.0,Playframework 2.0,我们小组对基于JVM的开发有些陌生。我们正在开发由许多其他库组成的应用程序 我们发现Play框架对于开发web应用程序非常有吸引力。这个框架很好,但是我们本地开发的库的依赖关系管理有些麻烦。我们正在使用Play2.0的RC2,虽然我们能够将库中的更改加载到游戏中,但这肯定是一个笨拙的过程,会中断正常的平滑播放过程 我们正在做的是将我们的库推送到本地(每个开发人员的机器上)Maven存储库,然后将这些库导入到Play项目中。这是可行的,但正如我所说,这很尴尬 我们是否应该采用任何最佳实践,使这项工

我们小组对基于JVM的开发有些陌生。我们正在开发由许多其他库组成的应用程序

我们发现Play框架对于开发web应用程序非常有吸引力。这个框架很好,但是我们本地开发的库的依赖关系管理有些麻烦。我们正在使用Play2.0的RC2,虽然我们能够将库中的更改加载到游戏中,但这肯定是一个笨拙的过程,会中断正常的平滑播放过程

我们正在做的是将我们的库推送到本地(每个开发人员的机器上)Maven存储库,然后将这些库导入到Play项目中。这是可行的,但正如我所说,这很尴尬

我们是否应该采用任何最佳实践,使这项工作更加顺利

FWIW,我们正在使用IntelliJ 11.0(终极版)

================编辑============

关于如何改进Maven构建过程,我得到了很好的答案,我非常感激。然而,这并不是我想要的答案

为了使其具体化,假设我正在构建一个服务和一个用于监视/管理服务的Web应用程序。该服务是一个普通的Java/Scala项目,Web应用是一个游戏!项目我们称之为“服务”和“应用”。(请不要挑剔这个提议的结构,我只是为了这个问题而简化它)

在Eclipse或IntelliJ中,我可以添加“服务”模块(或Eclipse的项目)作为“应用”项目的依赖项。这允许开发人员在“服务”库中进行更改时快速周转(例如,我向模型添加了一个属性)。重新编译和运行比编译、打包、部署、导入和重新加载浏览器快几个数量级


根据我对Play 2.0和SBT文档的阅读,我唯一真正的答案是将“服务”作为“应用”的子项目。有更好的答案吗?

在大多数情况下,游戏确实非常有趣。但是,有一种情况下,Play可能不是最佳解决方案,这正是您所指出的问题:当存在其他组件时,库将集成到应用程序中


我并不是说这是不可能的,这根本不是游戏的构思方式

您可能应该推送到本地Maven镜像/代理,例如。

您有两个选项

正如Rich提到的,第一个是本地存储库。这并不意味着maven在您的开发机器中创建的本地文件夹是本地缓存,您正在使用它。它意味着局域网中的一个中央服务器,您可以在其中存储应用程序的版本,以便以后检索,正如Rich推荐的那样,这是一个很好的选择

第二种选择是简单地构建JAR,并将其作为非托管库部署在的“lib”文件夹中。然后,您可以将其提交到源代码管理系统,所有开发人员都将拥有相同的资源

我推荐第一种方法,从长远来看要好得多,但这是你的选择

评论编辑
你说你不想管理依赖关系。我能想象的第三种情况是,您希望将所有代码作为一个块。在这种情况下,你可以使用。我没有其他选择。

我已经有了本地存储库。我不想改善这一点,因为我希望绕过它(至少是为了发展),对不起,这是FUD。Play 2.0使用sbt管理依赖关系,maven、sbt或ivy在这方面的差异几乎为零。那么,所有使用它们的项目都是错误的吗?:)我可能对Play2没有足够的经验,但Play1.x确实是这样。我很欣赏你说的话,但你仍在努力改进我试图消除的过程。我将编辑这个问题来澄清一下。再次感谢您的输入。如果您能看看我的示例,看看子项目是否是可行的方法,我将不胜感激。@AndyDavis yes SUBSPROJECT似乎是正确的方法,如果您想要分离子项目以独立运行,只需复制文件即可,无需额外工作:)