在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 插件使用
目錄結(jié)構(gòu)
Linux 平臺安裝 SBT
總結(jié)
安裝 SBT
簡單例子:Hello World
多項目構(gòu)建
作用域
配置文件 .sbt
Lib 庫依賴
運行 SBT
Windows 平臺安裝 SBT
插件使用
Mac 平臺安裝 SBT
配置文件 .scala
配置參數(shù)的方法
手動安裝 SBT
自定義配置和任務(wù)

插件使用

什么是插件?

插件可以擴展工程構(gòu)建定義,通常是增加一些新的配置,配置可以是任務(wù)配置,例如,一個插件可以增加一個codeCoverage 的任務(wù)配置,用來生成項目單元測試的代碼覆蓋率報告。

使用插件

如果一個項目的目錄為hello, 并且在該項目中使用sbt-site這個插件,只需創(chuàng)建一個名為hello/project/site.sbt配置文件,并且通過addSbtPlugin方法申明該插件的Ivy模塊ID:

addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "0.7.0")

如果添加一個sbt-assembly的插件,創(chuàng)建一個hello/project/assembly.sbt 配置文件,并且配置如下:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")

并不是每個插件在默認的遠程庫中都存在,這個需要根據(jù)具體的插件文檔來配置遠程庫地址:

resolvers += Resolver.sonatypeRepo("public")

插件一般都會提供一些配置來添加啟用插件,下一小節(jié)討論這個問題。

插件的啟用

一個插件通過配置可以自動的添加到項目中,不需要額外的做任何工作,在0.13.5有一個新的特性是可以自動啟用和配置在一個項目中,大部分自動插件都已經(jīng)自動的進行了默認的配置,不過有個別的插件也需要明確啟用。

如果一個插件需要配置啟用才可以使用,需要在build.sbt中進行如下配置:

lazy val util = (project in file("util")).
  enablePlugins(FooPlugin, BarPlugin).
  settings(
    name := "hello-util"
  )

enablePlugins 方法用來指定需要啟用的配置。

一個項目也可以通過disablePlugins 來排除使用一個插件。例如,在util項目中不想用插件IvyPlugin,可以如下配置:

lazy val util = (project in file("util")).
  enablePlugins(FooPlugin, BarPlugin).
  disablePlugins(plugins.IvyPlugin).
  settings(
    name := "hello-util"
  )

自動插件應(yīng)該在文檔中明確指定該插件是否需要顯式的啟用, 如果疑惑一個插件是否已經(jīng)啟用,可以在交互模式下使用命令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 默認啟用三個插件:

  • CorePlugin: 提供并行任務(wù)的控制
  • IvyPlugin: 提供依賴模塊的發(fā)布、解析機制
  • JvmPlugin: 提供編譯、測試、打包 Scala/Java代碼機制

另外 JUnitXmlReportPlugin插件只要是提供生成 junit-xml 文件的支持

添加老版非自動插件經(jīng)常需要顯式的配置,插件文檔將會指出如何進行配置,典型的老版插件是由基礎(chǔ)配置和自定義配置構(gòu)成。

例如,對于 sbt-site 這個插件,用如下配置來啟用該插件:

site.settings

如果是多項目構(gòu)建,可以直接在項目配置中配置:

// don't use the site plugin for the `util` project
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/ 下一次申明配置應(yīng)用在多個項目中,~/.sbt/0.13/plugins/ 是一個sbt項目,其classpath將導(dǎo)出到每個sbt構(gòu)建項目中,粗略的講,在~/.sbt/0.13/plugins/中的任何.sbt.scala配置都會影響到所有的sbt構(gòu)建項目 可以在~/.sbt/0.13/plugins/build.sbt 通過addSbtPlugin方法添加一個插件來應(yīng)用到所有的項目中,所以如果添加一些針對機器的環(huán)境變量等的場合這個特性非常實用。

已經(jīng)存在的插件

已經(jīng)存在的插件列表

一般比較常用的有兩類:

  • 針對某些IDE的插件
  • 針對Web框架支持的插件,如xsbt-web-plugin