我正在编写一个Scala编译器插件,我想在调用scalac
时使用它,所以我将它放在Scala发行版的插件目录(misc/scala-devel/plugins
)中 - 这在我写的时候非常有用像scalac HelloWorld.scala
这样简单的东西,但是当我尝试使用带有嵌入式scalac
任务的Ant脚本构建时不起作用,如:
<scalac srcdir="${src}" destdir="${bin}" classpathref="build.classpath" deprecation="on">
<include name="**/*.scala"/>
</scalac>
我可以通过更改构建脚本来指定插件目录来实现它,例如:
<scalac srcdir="${src}" destdir="${bin}" classpathref="build.classpath" deprecation="on"
addparams="-Xpluginsdir /Users/stuart/Downloads/scala-2.9.2/misc/scala-devel/plugins">
<include name="**/*.scala"/>
</scalac>
但是,我需要这个为第三方构建脚本工作,我无法手动更改,所以我的简单修复不会削减它 - 任何想法好吗?
更新:
经过一番挖掘,我发现你可以使用presetdef
覆盖任务定义,例如:
<presetdef name="scalac">
<scalac addparams="-Xpluginsdir /Users/stuart/Downloads/scala-2.9.2/misc/scala-devel/plugins"/>
</presetdef>
这并没有直接解决问题,但它可能很有意思 - 我目前的调查线是否可以将这个(或类似的东西)放在一个导入原始脚本的包装器Ant脚本中(不知道是否这样)会工作,我不会那么多使用Ant。