Плагин Sbt, в зависимости от другого плагина, генерирует исключение RuntimeException при тестировании с использованием сценариев sbt

Я пытаюсь протестировать sbt-плагин (в дальнейшем MyPlugin) с помощью sbt-scripted, но он продолжает выдавать мне исключение java.lang.RuntimeException (плагин компилируется правильно) из-за этой ошибки (см. Здесь полный текст):

[error] 
[error]   last tree to typer: ArrayValue
[error]               symbol: null
[error]    symbol definition: null
[error]        symbol owners: 
[error]       context owners: method $sbtdef -> object $ca19269de636e3032318 -> package <empty>
[error] 
[error] == Enclosing template or block ==
[error] 
[error] Apply( // implicit def wrapRefArray(xs: Array[Object]): collection.mutable.WrappedArray in class LowPriorityImplicits
[error]   scala.this."Predef"."wrapRefArray" // implicit def wrapRefArray(xs: Array[Object]): collection.mutable.WrappedArray in class LowPriorityImplicits, tree.tpe=(xs: Array[Object])collection.mutable.WrappedArray
[error]   ArrayValue(
[error]     <tpt> // tree.tpe=sbt.AutoPlugin
[error]     List(
[error]       "it"."flatmap"."myplugin"."MyPlugin" // sym= <error> bad symbolic reference. A signature in MyPlugin.class refers to term plugin
[error] in value com.sbteclipse which is not available.
[error] It may be completely missing from the current classpath, or the version on
[error] the classpath might be incompatible with the version used when compiling MyPlugin.class.
[error]     )
[error]   )
[error] )
[error] 

MyPlugin зависит от sbteclipse (мне нужно выполнить "eclipse") Command программно), как указано в последнем ряду MyPlugin/build.sbt файл:

sbtPlugin := true

version := "0.0.1"

name := "myplugin"

scalaVersion := "2.10.6"
organization := "it.flatmap"

isSnapshot := true

//Configuring scriptedplugin
ScriptedPlugin.scriptedSettings

scriptedLaunchOpts <++= version apply { version =>
  Seq("-Xmx1024M", "-Dplugin.version=" + version)
}
//end of scripted plugin config

libraryDependencies ++= Seq("org.scalatest" %% "scalatest" % "3.0.0" % "test")

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")

мой AutoPlugin подкласс отменяет оба trigger а также requires подписи следующие:

override def trigger = allRequirements

override def requires = EclipsePlugin

Я установил простой тестовый сценарий sbt, но он бросает java.lang.RuntimeException описано выше. Я не могу понять почему.

Это конфигурация со скриптом sbt:

Тест /build.sbt

version := "0.0.1"

scalaVersion in ThisBuild := "2.10.6"

name := "myPluginSimpleTest"

enablePlugins(MyPlugin)

тест / проект /plugins.sbt

{
  val pluginVersion = System.getProperty("plugin.version")
  if(pluginVersion == null)
    throw new RuntimeException("""|The system property 'plugin.version' is not defined.
                                 |Specify this property using the scriptedLaunchOpts -D.""".stripMargin)
  else addSbtPlugin("it.flatmap" % "myplugin" % pluginVersion)
}

//should I add the eclipse plugin also here? if so, why?

Что мне не хватает?

Спасибо!

0 ответов

Другие вопросы по тегам