我是playframework的新手,只是在学习。我在依赖项,模块,插件和子项目之间有点困惑。他们如何彼此不同?
这是我所理解的,我可能是错的。
依赖项 - 是播放应用程序运行所需的所有库。 子项目 - 是另一个父应用程序内的播放应用程序。 不确定'插件'和'模块'。
有人可以解释一下他们的不同之处吗?
注意:我正在使用Play 2.4和play-java,不确定定义是否随play-scala而变化。
答案 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
因此,模块和依赖项可能是同一个模块中的一个,也可能不是,依赖项可能提供许多模块,单个模块可以由许多传递依赖项提供。