我正在使用sbt
插件对我的代码进行一些样式检查:https://github.com/sksamuel/sbt-scapegoat.在我的一个项目中,让我们称之为我的应用程序,我将sbt
插件添加到项目目录中的plugins.sbt
文件中。
该工具运行良好,一切似乎都如预期的那样工作。这个插件有一个编译器标志,允许传入自定义检查。
因此,我创建了另一个项目my-inspections
,在该项目中,我使用与sbt
插件相同的类添加了一个自定义检查。然后,我在应用程序中将我的检查添加为未管理的jar。我在plugins.sbt
文件中添加了以下行:
unmanagedJars in Compile += {
Attributed.blank(file("lib/my-inspections.jar"))
}
现在,当我尝试使用我在my-inspections
中添加的自定义检查类并将其传递给所提供的编译器标志时,我会收到一个错误,说它找不到该类。我通过了我添加的自定义检查的完全合格类名。sbt
插件会执行以下操作:
Class.forName(inspection).getConstructor().newInstance().asInstanceOf[Inspection]
这导致CCD_ 9。
sbt
插件如何成功加载我创建的具有自定义检查的Class
?
如果在jar文件中有类,请尝试将jar文件放在project/lib
中。project
目录是您的项目的sbt
构建;sbt插件属于项目构建。project
中的lib
目录应该可以放置项目的非托管依赖项。