我用的是 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]
这会导致 ClassNotFoundException
.
你怎么能 sbt
插件成功加载 Class
我创建了一个有自定义检查?
1条答案
按热度按时间izj3ouym1#
如果类位于jar文件中,请尝试将jar文件放入
project/lib
. 这个project
目录是一个sbt
为您的项目构建;sbt插件属于项目构建。这个lib
目录位于project
是您应该能够放置项目的非托管依赖项的位置。