非托管 jar 文件中的 SBT 插件
SBT Plugin in an unmanaged jar file
要求:SBT 插件代码位于非托管 jar 中,例如 lib/unmanaged-sbt-plugin-0.0.1.jar
。
我期待 jar 文件会被 SBT 自动拾取并且插件会开箱即用,即:任务可以从 SBT 命令行访问,但事实并非如此。
jar 文件中包含 sbt/sbt.autoplugins
文件,如果从远程存储库拉到本地存储库并通过 addSbtPlugin(...)
导入,则插件可以正常工作。请注意,我不能那样做——这是从 lib/unmanaged-sbt-plugin-0.0.1.jar
而不是从 local/remote 存储库加载它的要求。
将以下行放在 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
文件夹中。
要求:SBT 插件代码位于非托管 jar 中,例如 lib/unmanaged-sbt-plugin-0.0.1.jar
。
我期待 jar 文件会被 SBT 自动拾取并且插件会开箱即用,即:任务可以从 SBT 命令行访问,但事实并非如此。
jar 文件中包含 sbt/sbt.autoplugins
文件,如果从远程存储库拉到本地存储库并通过 addSbtPlugin(...)
导入,则插件可以正常工作。请注意,我不能那样做——这是从 lib/unmanaged-sbt-plugin-0.0.1.jar
而不是从 local/remote 存储库加载它的要求。
将以下行放在 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
文件夹中。