将类添加到sbt插件的类路径



我正在使用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目录应该可以放置项目的非托管依赖项。

相关内容

最新更新