首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Scala编译器插件在Scala中工作

如何使Scala编译器插件在Scala中工作
EN

Stack Overflow用户
提问于 2011-10-21 11:04:28
回答 1查看 4.1K关注 0票数 4

注意:这是Scala邮件列表中相同问题的确切转发,在那里,我得到了零回复,5天后放弃了等待。

我正在编写Scala编译器插件。它目前被称为scalawrapper (但稍后我可能会找到一个更好的名称)。我安装了Typesafe Stack,并将插件放在下面:

代码语言:javascript
复制
C:\Program Files\typesafe-stack\misc\scala-devel\plugins

现在我可以这样称呼scalac:

代码语言:javascript
复制
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中,那么作为默认的用途是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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高级选项卡下,我有

代码语言:javascript
复制
Xplugin = C:\code\project\workspace\plugin\xxx-0.0.1.jar
Xplugin-require = xxx

请注意,您也可以在项目属性中指定插件,但它仍然使用$workspace_loc。上述配置适用于我。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7848521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档