我刚从 Scala 开始,遇到了一个让我很难过的问题,但我猜我错过了一些简单的东西。
我按照说明使用 Clapper ClassFinder: http ://thoughts.inphina.com/2011/09/15/building-a-plugin-based-architecture-in-scala/
val classpath = List("./plugins").map(new File(_))
val finder = ClassFinder(classpath)
val classes = finder.getClasses
val classMap = ClassFinder.classInfoMap(classes)
执行第一行后,我看到类路径被简单地设置为 List(.\plugins) 我在 Windows 上运行它,所以斜线的交换似乎没问题。但是我希望看到一个 File 对象的列表,尽管我不确定这个 Scala 语法,也许我在 Scala IDE 中遗漏了一些东西。类的值显示一个“空迭代器”。
在我指定的路径中似乎没有找到任何文件。我尝试使用绝对路径,但结果相同。我希望它会在插件目录中找到一个 jar 文件。plugins 目录位于我正在使用的 Play2 项目的根目录中。
编辑---我确实发现,当我明确列出一个罐子的路径时,它能够找到它:
val classpath = List("./plugins/myPlugin.jar").map(new File(_))
但是我想在目录中找到所有的jar文件。以下没有奏效:
val classpath = List("./plugins/*").map(new File(_))
这也没有:
val classpath = List("./plugins/*.jar").map(new File(_))