注意:这是Scala邮件列表中相同问题的确切转发,在那里,我得到了零回复,5天后放弃了等待。
我正在编写Scala编译器插件。它目前被称为scalawrapper (但稍后我可能会找到一个更好的名称)。我安装了Typesafe Stack,并将插件放在下面:
C:\Program Files\typesafe-stack\misc\scala-devel\plugins现在我可以这样称呼scalac:
scalac -classpath ... -Xplugin-require:scalawrapper test\...它会自动找到并使用我的插件。
不幸的是,我无法让Scala使用它。我总是得到Missing required plugin: scalawrapper。在“Properties \ scalawrapper ()\Advanced”选项卡中,我在Xplugin-require字段中输入了scalawrapper,这很有效,因为我得到了错误。但是,我在Xpluginsdir中输入的任何内容似乎都没有任何效果。
我尝试了上面给出的绝对路径,用正反斜杠尝试过,尝试过没有空格的临时目录,尝试过相对于项目目录,尝试过相对于工作区。它不会用任何东西。我还应该指出,这并不是我自己的插件所特有的,因为我以前尝试过在Scala的早期版本中使用ScalaCL插件,但由于同样的原因失败了。
我今天刚刚更新(15.10.2011),所以应该有最新的版本(看来我终于可以显式地将缩进设置为4,但也许我忽略了过去的设置)。
有人能告诉我它实际期望的是什么吗?如果我不把任何东西放在Xpluginsdir中,那么作为默认的用途是什么呢?
发布于 2011-10-21 11:14:56
Scala使用的是表示编译器,而不是您安装的编译器。要使用插件,在Scala中,您需要在Eclipse中的首选项中指定它。
试试Windows->Preferences->Scala->Compiler。参见“高级”选项卡。路径相对于工作区。
编辑:当我说相对于工作区时,我指的是存储.metadata的实际工作区目录($workspace_loc)。我有一个项目,其中包括源代码在内的项目文件存储在一个目录中,工作区在其他地方,即$project_loc (c:\ code \ project \ source )与$workspace_loc (c:\code\ project \工作区)不同。在编译器参数中指定的目录相对于工作区($workspace_loc)。
要了解是否有类似的设置,请转到项目并选择Properties->Resource->Linked Resources。
我在$workspace_loc下创建了一个名为plugin的目录,并将jar文件放在其中。在Windows->Preferences->Scala->Compiler高级选项卡下,我有
Xplugin = C:\code\project\workspace\plugin\xxx-0.0.1.jar
Xplugin-require = xxx请注意,您也可以在项目属性中指定插件,但它仍然使用$workspace_loc。上述配置适用于我。
https://stackoverflow.com/questions/7848521
复制相似问题