簡體   English   中英

SBT插件在非托管jar文件中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM