2017-04-03 19 views
0

scala-mavenプロジェクトでscala-meta inline/metaスタイルのマクロ注釈を実装しようとしました。コンパイルでエラーが発生しました。スカラメタインラインwith maven

[ERROR] /home/tiran/.../validatable.scala:12: ';' expected but 'def' found. 
[ERROR] inline def apply(defn: Any): Any = meta { 
[ERROR]  ^

スケーラメタを動作させるために追加のコンパイラプラグインが必要ですか、ここで何か不足していますか?ところで、scalameta依存関係が私が追加した唯一の依存関係です。私のScalaのバージョンはhttps://github.com/scalameta/sbt-macro-example/blob/master/build.sbtから2.11

答えて

1

です:

// A dependency on macro paradise 3.x is required to both write and expand 
// new-style macros. This is similar to how it works for old-style macro 
// annotations and a dependency on macro paradise 2.x. 
addCompilerPlugin("org.scalameta" % "paradise" % "3.0.0-M7" cross CrossVersion.full), 
scalacOptions += "-Xplugin-require:macroparadise", 

ですから、Mavenの同等を追加する必要があります。

+1

スカラメタパラダイスコンパイラプラグインは、 '-Xplugin:/ path/to/scameta/paradise.jar'をscalacに渡すことで有効にすることができます。これは基本的にaddCompilerPluginがsbtで行うことです。 –