Scala sbt AutoPlugin with dependencies。在另一个项目中启用EnablePlugins时出错

时间:2016-11-03 08:32:18

标签: scala plugins sbt

我试图解决创建sbt AutoPlugins的问题。 我想创建一个自动加载所有依赖项的插件,所以我使用NoTrigger策略。 我编写了自己的AutoPlugin,它必须从sbt-assembly执行汇编任务,如下所示:

/build.sbt

中的

设置

name := "sbt-myplugin"
version := "0.0.1"
organization := "com.org"
scalaVersion := "2.10.6"
sbtPlugin := true
sbtVersion := "0.13.11"

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3")
/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
  )
}

然后我用 sbt clean compile publishLocal 创建工件 在此之后,我创建了将使用我的插件的测试项目。

/project/plugins.sbt

此项目的设置

logLevel := Level.Warn

resolvers += "Local Ivy Repository" at "file://"+Path.userHome.absolutePath+"/.ivy2/local"
addSbtPlugin("com.academmedia.ias" % "sbt-pkplace" % "0.0.1")
/biuld.sbt

中的

设置

name := "test-project"
version := "1.0"
scalaVersion := "2.11.8"

lazy val root = (project in file(".")).enablePlugins(myplugin.MyPlugin)

现在我希望能够使用MyPlugin任务 myAssembly ,但我的poject sbt无法下载错误的项目设置: [error] java.lang.NoClassDefFoundError:sbtassembly / AssemblyPlugin $

我做错了什么? 谢谢你的回答!

0 个答案:

没有答案