带有依赖项的Scala sbt AutoPlugin。在另一个项目中启用插件时出错
我正在尝试创建sbt自动插件。 我想创建一个插件,它将自动加载他的所有依赖项,所以我使用NotRiger策略。 我编写了自己的AutoPlugin,它必须从sbt assembly执行汇编任务,如下所示: /build.sbt中的设置 /src/main/scala/myplugin/myplugin.scala中的插件代码 然后我将使用sbt clean compile publishLocal创建工件 在此之后,我创建了一个测试项目,它将使用我的插件 /project/plugins.sbt中此项目的设置 /biuld.sbt中的设置 现在我希望能够使用带有依赖项的Scala sbt AutoPlugin。在另一个项目中启用插件时出错,scala,plugins,sbt,Scala,Plugins,Sbt,我正在尝试创建sbt自动插件。 我想创建一个插件,它将自动加载他的所有依赖项,所以我使用NotRiger策略。 我编写了自己的AutoPlugin,它必须从sbt assembly执行汇编任务,如下所示: /build.sbt中的设置 /src/main/scala/myplugin/myplugin.scala中的插件代码 然后我将使用sbt clean compile publishLocal创建工件 在此之后,我创建了一个测试项目,它将使用我的插件 /project/plugins.sbt
MyPlugin
task myAssembly,但我的项目sbt
无法下载项目设置,出现错误:
[error] java.lang.NoClassDefFoundError: sbtassembly/AssemblyPlugin$
我做错了什么?
谢谢你的回答 检查您编写的路径。您确定插件源代码在
src/scala/myplugin/
中吗?不是src/scala/main/myplugin/
?实际路径是/src/main/scala/myplugin/myplugin.scala
。我只是打错了字。
package myplugin
import sbt._
import sbtassembly.AssemblyPlugin
import sbtassembly.AssemblyPlugin.autoImport._
object MyPlugin extends AutoPlugin{
override def trigger = noTrigger
override def requires = AssemblyPlugin
object autoImport {
val myAssembly = taskKey[File]("Assembled file")
}
import autoImport._
override lazy val projectSettings = Seq(
myAssembly := assembly.value
)
}
logLevel := Level.Warn
resolvers += "Local Ivy Repository" at "file://"+Path.userHome.absolutePath+"/.ivy2/local"
addSbtPlugin("com.academmedia.ias" % "sbt-pkplace" % "0.0.1")
name := "test-project"
version := "1.0"
scalaVersion := "2.11.8"
lazy val root = (project in file(".")).enablePlugins(myplugin.MyPlugin)
[error] java.lang.NoClassDefFoundError: sbtassembly/AssemblyPlugin$