AspectJ, создавая внешний jar-файл, предоставляемый с помощью команды sbt throws, не может определить суперкласс отсутствующего типа - PullRequest
1 голос
/ 21 марта 2019

Я пытаюсь создать библиотеку тестирования scalatest (https://mvnrepository.com/artifact/org.scalatest/scalatest_2.12/3.2.0-SNAP10). Эта зависимость от библиотеки есть в моем build.sbt:

enablePlugins(SbtAspectj)
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.5"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test"

aspectjInputs in Aspectj ++= update.value.matching(moduleFilter(organization = "com.typesafe.akka", name = "akka-actor*"))
aspectjInputs in Aspectj ++= update.value.matching(moduleFilter(organization = "org.scalatest", name = "scalatest*")) 

fullClasspath in Runtime := aspectjUseInstrumentedClasses(Runtime).value ++ aspectjUseInstrumentedClasses(Test).value

Глядя на сайт maven, он перечисляет несколько других необязательных зависимостей, таких как org.jmock и т. Д.

Проблема в том, что SBT загружает только scalatest.jar, а не jmock.jar (наряду с другими необязательными зависимостями). Распечатка aspectjInputs действительно показывает scalatest.jar, но не jmock.jar.

По этой причине (?) Мне выдаются следующие ошибки:

[error] error at (no source information available)
[error] /Users/jonas/.ivy2/cache/org.scalatest/scalatest_2.12/bundles/scalatest_2.12-3.0.5.jar:0::0 can't determine superclass of missing type org.jmock.Expectations
[error] when weaving type org.scalatest.jmock.JMockExpectations
[error] when weaving classes 
[error] when weaving 
[error] when batch building BuildConfig[null] #Files=1 AopXmls=#0
[error]  [Xlint:cantFindType]

Я предполагаю, что мне как-то нужен файл .jar необязательных зависимостей ScalaTest, но, поскольку они не загружаются sbt, я теряюсь, как решить эту проблему.

Итак, как их разрешить или добавить в путь к классам, когда происходит переплетение?

Я использую плагин aspectj-sbt.

1 Ответ

0 голосов
/ 26 марта 2019

Вы можете включить дополнительные зависимости в соответствие конфигурации следующим образом:

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test->compile,optional"
...