将库依赖项添加到SBT,用于SBT(不是SBT管理的项目)

时间:2018-11-07 16:58:42

标签: scala sbt

我正在尝试为SBT创建一个任务,因此当我键入“ deploy”时,该任务将创建一个.jar,然后通过SCP进行部署(我需要一个SSH库)。我苦苦挣扎的问题是,我不知道要为build.sbt本身添加库依赖项(SSH库)。我有 libraryDependencies += "org.apache.commons" % "commons-vfs2" % "2.2" 但这使该库可用于项目代码,而不是我必须在其中定义任务的SBT脚本“ build.sbt”。

2 个答案:

答案 0 :(得分:2)

听起来完全像是sbt插件!有效地是“ sbt库”。

例如,也许https://github.com/shmishleniy/sbt-deploy-ssh对您有帮助?

要使用它们,您需要编辑plugins.sbt文件,而不是build.sbt一个文件

例如,对于此ssh,您需要将其添加到plugins.sbt文件中:

resolvers += "JAnalyse Repository" at "http://www.janalyse.fr/repository/"
addSbtPlugin("com.github.shmishleniy" % "sbt-deploy-ssh" % "0.1.4")

答案 1 :(得分:2)

您有两个选择:

首先,如果您打算在多个项目中重新实现相同的功能,则最好的做法是create your own sbt plugin-它基本上只是另一个scala项目,因此您可以在{{ 1}}。

第二,如果您只需要一个项目,并且不想为其发布插件。 SBT is recursive意味着您可以修改用于管理项目的 SBT 。这样,您需要将依赖项添加到build.sbt而不是./project/build.sbt-我也建议您将任务写在./build.sbt内的 Scala文件中。