1

呼び出されるたびに使用したいScalaコンパイラプラグインを書いているscalacので、Scalaディストリビューションのpluginsディレクトリに置きます(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はあまり使いません)。

4

0 に答える 0