sbt提供的AspectJ编织外部jar文件抛出can';t确定缺少类型的超类

sbt提供的AspectJ编织外部jar文件抛出can';t确定缺少类型的超类,sbt,aspectj,Sbt,Aspectj,我正在尝试编织测试库scalatest()。此库依赖项位于my build.sbt中: enablePlugins(SbtAspectj) libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.5" libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test" aspectjInputs in Aspectj ++= update.value.

我正在尝试编织测试库scalatest()。此库依赖项位于my 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]
我假设我需要ScalaTest的可选依赖项的.jar文件,但由于sbt没有下载这些依赖项,我不知道如何解决这个问题

那么,当编织发生时,我如何解析它们或将它们添加到类路径中?


我正在使用aspectj sbt插件。

您可以使用如下配置映射包括可选的依赖项:

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

您可以使用如下配置映射包括可选依赖项:

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

这确实下载了可选的依赖项,但编织仍然失败,出现了类似的错误。我在一个新项目上尝试了它,现在似乎工作正常。这确实下载了可选的依赖项,但编织仍然失败,出现了类似的错误。我在一个新项目上尝试了它,现在似乎工作正常。