我刚刚开始与斯卡拉,并遇到了一个问题,让我难住,但我猜我错过了一件容易的事情。PlayFramework2斯卡拉文件地图
我下面的说明使用梆子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)
执行的第一行后,我看到classpath中被简单地设置 列表 我运行这个(\插件。)在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(_))
只是对语法进行澄清:'List(...)。map(...)'意味着“将函数映射到map中,并将其应用于列表中的每个元素”。这里你的列表只有一个元素('“./plugins”'),所以'List(“./ plugins”)。map(new File(_))'等同于'List(new File(“./ plugins “))' –