[英]SBT Plugin in an unmanaged jar file
要求:SBT插件代碼位於非托管jar中,例如lib/unmanaged-sbt-plugin-0.0.1.jar
。 我期待SBT會自動拾取jar文件,插件可以開箱即用,即:可以從SBT命令行訪問任務,但事實並非如此。
jar文件中包含sbt/sbt.autoplugins
文件,如果從遠程repo中提取到本地文件並通過addSbtPlugin(...)
導入,該插件可以正常工作。 請注意我不能這樣做 - 需要從lib/unmanaged-sbt-plugin-0.0.1.jar
而不是從本地/遠程repo加載它。
build.sbt
下行放在build.sbt
中不會使插件工作(也沒有錯誤):
unmanagedJars in Compile += file("lib/unmanaged-sbt-plugin-0.0.1.jar")
addSbtPlugin(...)
很簡單(根據http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Using-Plugins.html ):
def addSbtPlugin(dependency: ModuleID): Setting[Seq[ModuleID]] =
libraryDependencies <+= (sbtBinaryVersion in update, scalaBinaryVersion in update)
{ (sbtV, scalaV) => sbtPluginExtra(dependency, sbtV, scalaV) }
我想知道上述信息是否可用於解決我的問題?
先感謝您!
因此,您可以為庫依賴項( ModuleID
)指定顯式URL:
addSbtPlugin("org.my-org" % "unmanaged-sbt-plugin" % "0.0.1"
from "file:///./lib/unmanaged-sbt-plugin-0.0.1.jar")
一直在努力讓這個工作。 無法使用from "file://.."
(使用sbt 1.0.4)使用建議的解決方案。
通過將插件放在project/lib
文件夾中並使用libraryDependencies ++= Seq(..)
將所有插件依賴項添加到plugins.sbt
就像在build.sbt
。 您可以通過查看插件pom文件找到插件依賴項,通常位於.ivy2/local/<org>/<pluginname>/poms
文件夾中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.