注意:这是Scala-IDE邮件列表中相同问题的精确转发,我得到零回复,并在5天后放弃等待。
我正在编写Scala编译器插件。它目前被称为 scalawrapper(但我后来可能会找到一个更好的名字)。我有 安装了Typesafe Stack,我把我的插件放在:
下面C:\Program Files\typesafe-stack\misc\scala-devel\plugins
现在我可以这样调用scalac:
scalac -classpath ... -Xplugin-require:scalawrapper test\...
它会自动找到并使用我的插件。
不幸的是,我无法让Scala-IDE使用它。我总是得到
Missing required plugin: scalawrapper
。在“项目属性”中
\ Scala编译器(使用项目设置)\高级“选项卡,我已输入
scalawrapper在Xplugin-require字段中,这是有效的,因为我得到了
错误。但是我在Xpluginsdir中输入的内容似乎没有
效果。
我已尝试过上面给出的绝对路径,尝试过前进 和反斜杠,尝试了一个没有空格的临时目录 在它,已经尝试过相对于项目目录,已经尝试了亲戚 工作区。它不会使用任何东西。我还应该注意到 因为我试图使用ScalaCL,所以并不特定于我自己的插件 之前版本的Scala-IDE中的插件,但失败了 完全相同的原因。
我今天刚刚更新(2011年10月15日),所以应该有最新的 版本(似乎我终于可以将缩进显式设置为4, 但也许我只是忽略了过去的设置。
有人能告诉我它的实际期望,以及用途 当我没有在Xpluginsdir中放任何东西时默认?
答案 0 :(得分:3)
Scala IDE使用表示编译器,而不是您安装的编译器。要使用插件,使用Scala IDE,您需要在Eclipse中的首选项中指定它。
试试Windows->Preferences->Scala->Compiler
。请参阅高级选项卡。路径相对于工作空间。
编辑:当我说相对于工作空间时,我指的是存储.metadata的实际工作空间目录($workspace_loc
)。我有一个项目,其中包含源代码的项目文件存储在一个目录中,工作区在其他地方,即$project_loc
(c:\ code \ project \ source)与$workspace_loc
不同(c :\代码\项目\工作区)。您在编译器参数中指定的目录是相对于工作空间($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
。以上配置对我有用。