2.4中的插件,依赖项,模块和子项目有什么区别?

时间:2015-11-18 03:23:35

标签: playframework-2.0

我是playframework的新手,只是在学习。我在依赖项,模块,插件和子项目之间有点困惑。他们如何彼此不同?

这是我所理解的,我可能是错的。

依赖项 - 是播放应用程序运行所需的所有库。 子项目 - 是另一个父应用程序内的播放应用程序。 不确定'插件'和'模块'。

有人可以解释一下他们的不同之处吗?

注意:我正在使用Play 2.4和play-java,不确定定义是否随play-scala而变化。

1 个答案:

答案 0 :(得分:7)

您的初步解释非常正确。

依赖性确实是库,更严格来说,它们是通过存储库(最大的存储库称为Maven central)分发并由SBT下载的jar文件(包含java类的zip文件的精美名称)

子项目最好被视为直接嵌入到您的构建中的库。如果运行publishLocal,您的子项目将打包到jar中并部署到本地存储库。如果您已将构建配置为发布到特定的公共(或私有)存储库,则在运行publish时,jar及其元数据将被推送到那里,其他项目可以在其依赖项中声明它。实际上,SBT构建中的每个项目都属于这一类。您的游戏项目实际上是一个可以依赖其他东西的库。

插件和模块是灰色术语,在不同的上下文中表示不同的东西。

首先,有一些sbt插件,这些插件在你的project/plugins.sbt中声明,这些插件会为你的构建添加新的行为,例如编译更少文件的能力。 Play的开发模式部分由sbt插件实现。

然后是播放器运行时的插件。我们目前正在逐步淘汰这个术语,支持单词模块,但它仍然有一些用处。

我们已经发布了一些关于模块在哪里的文档:

https://www.playframework.com/documentation/2.4.x/Modules

因此,模块和依赖项可能是同一个模块中的一个,也可能不是,依赖项可能提供许多模块,单个模块可以由许多传递依赖项提供。