在游戏中添加库依赖性2.3.8

时间:2015-07-23 20:03:52

标签: plugins playframework-2.0

我试图将apache commons电子邮件库添加到我的Play项目中,但我遇到了麻烦。

首先,我的项目中有build.sbt和plugins.sbt,我不知道应该将导入哪一个,有人知道吗?

另外,我不确定为什么我的项目中还有单独的项目模块,intelliJ将其作为项目的一部分创建。任何人都可以解释两个独立模块的目的以及它们为什么存在?

谢谢!

enter image description here

1 个答案:

答案 0 :(得分:3)

所以,在sbt,你有你的项目。这在build.sbt中指定(或者更确切地说,在项目基目录中的任何* .sbt文件中指定)。您的应用程序代码需要的任何库,例如,如果您的应用程序需要使用commons电子邮件库发送电子邮件,请转到此处查看的librarDependencies。

但build.sbt本身是需要编译的Scala代码,但它不是应用程序运行时的一部分。所以在sbt中,你的项目构建本身就是一个项目,必须要编译。它有自己的类路径,它包含你正在使用的sbt插件,所以例如,如果你需要一个较少的编译器来编译你的较少的文件,这不是在运行时完成的事情,所以你不想要你的应用程序代码取决于它,它进入你的项目构建libraryDependencies,它在project / plugins.sbt中指定(或实际上在项目目录中的任何* .sbt)。因此,一旦将其添加到那里,就可以使用build.sbt提供的Scala代码。 IntelliJ为您导入此项目,以便您可以在build.sbt中使用语法突出显示和其他IDE功能。

但它并不止于此。 project / plugins.sbt是如何编译的,它的类路径在哪里?那么,你的项目构建项目构建项目本身也是一个sbt项目......它一直在下降。但IntelliJ在此时停止,它不会继续导入这些元sbt项目,因为实际上很少需要为项目构建项目构建项目需要额外的sbt插件,因此它只使用与项目构建项目相同的类路径来进行语法突出显示在project / plugins.sbt。