插件使用
如果一个项目的目录为hello, 并且在该项目中使用sbt-site
这个插件,只需创建一个名为hello/project/site.sbt
配置文件,并且通过addSbtPlugin
方法申明该插件的Ivy模块ID:
如果添加一个sbt-assembly
的插件,创建一个hello/project/assembly.sbt
配置文件,并且配置如下:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
并不是每个插件在默认的远程库中都存在,这个需要根据具体的插件文档来配置远程库地址:
插件一般都会提供一些配置来添加启用插件,下一小节讨论这个问题。
一个插件通过配置可以自动的添加到项目中,不需要额外的做任何工作,在0.13.5有一个新的特性是可以自动启用和配置在一个项目中,大部分自动插件都已经自动的进行了默认的配置,不过有个别的插件也需要明确启用。
lazy val util = (project in file("util")).
enablePlugins(FooPlugin, BarPlugin).
name := "hello-util"
)
方法用来指定需要启用的配置。
一个项目也可以通过disablePlugins
来排除使用一个插件。例如,在util项目中不想用插件IvyPlugin
,可以如下配置:
自动插件应该在文档中明确指定该插件是否需要显式的启用, 如果疑惑一个插件是否已经启用,可以在交互模式下使用命令plugins
来判断,例如:
> plugins
In file:/home/jsuereth/projects/sbt/test-ivy-issues/
sbt.plugins.IvyPlugin: enabled in scala-sbt-org
sbt.plugins.JvmPlugin: enabled in scala-sbt-org
sbt.plugins.CorePlugin: enabled in scala-sbt-org
sbt.plugins.JUnitXmlReportPlugin: enabled in scala-sbt-org
这块显示的是所有默认开启的插件,sbt 默认启用三个插件:
- IvyPlugin: 提供依赖模块的发布、解析机制
- JvmPlugin: 提供编译、测试、打包 Scala/Java代码机制
另外 JUnitXmlReportPlugin
插件只要是提供生成 junit-xml 文件的支持
例如,对于 sbt-site
这个插件,用如下配置来启用该插件:
如果是多项目构建,可以直接在项目配置中配置:
lazy val util = (project in file("util"))
// enable the site plugin for the `core` project
lazy val core = (project in file("core")).
settings(site.settings : _*)
插件可以通过在~/.sbt/0.13/plugins/
下一次申明配置应用在多个项目中,~/.sbt/0.13/plugins/
是一个sbt项目,其classpath将导出到每个sbt构建项目中,粗略的讲,在~/.sbt/0.13/plugins/
中的任何.sbt
或.scala
配置都会影响到所有的sbt构建项目
可以在~/.sbt/0.13/plugins/build.sbt
通过方法添加一个插件来应用到所有的项目中,所以如果添加一些针对机器的环境变量等的场合这个特性非常实用。
已经存在的插件列表
一般比较常用的有两类:
- 针对Web框架支持的插件,如