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

jes*_*mar 3 playframework-2.0

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

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

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

有人可以解释他们有何不同?

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

Jam*_*per 7

您的初步解释非常正确.

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

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

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

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

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

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

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

因此,模块和依赖关系可以是同一个事物中的一个,或者它们可能不是,依赖关系可以提供许多模块,单个模块可以由许多传递依赖性提供.