個人的には、受け入れられた答えであるにもかかわらず、Maven を直接使用することは避けたいと思います。以下は、単純な Leiningen プロジェクトの定義です。
- ANTLR4 文法から Java ソースを生成します (ボーナスとして)。
- Java ソースをコンパイルします。
- Scala ソースをコンパイルします (生成された ANTLR4 Java コードの上で Scala を使用することを好みます。より簡潔で使いやすいためです)。
- Clojure の話を続けます。
(defproject polyglot "0.1.0-SNAPSHOT"
:description "FIXME: 説明を書く"
:url "http://example.com/FIXME"
:license {:name "Eclipse パブリック ライセンス"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:plugins [[lein-antlr4 "0.1.0-SNAPSHOT"]
[lein-scalac "0.1.0"]]
:dependencies [[org.clojure/clojure "1.5.1"]
[org.antlr/antlr4 "4.0"]
[org.scala-lang/scala-library "2.10.1"]]
:反射時に警告 true
:antlr4-source-paths ["antlr4"]
:antlr4-options {:package "parser" :listener true}
:antlr4-compile-path "ターゲット/antlr4/パーサー"
:java-source-paths ["target/antlr4/parser" "src/java"]
:scala-source-path "src/scala"
:prep-tasks ["antlr4" "javac" "scalac" "compile"])
ANTLR4 プラグインを使用するには、 lein-antlr4プラグインをダウンロードして「lein install」します。必要ない場合は、プロジェクト定義から関連する行を削除してください。
Scala プラグインを使用するには、ダウンロードして変更する必要がありました
[org.scala-lang/scala-compiler "2.9.1"]
に
[org.scala-lang/scala-compiler "2.10.1"]
プラグインの project.clj で、ローカルに「lein install」します。私が得ていた古い依存関係のバージョンで
java.lang.Error: typeConstructor inapplicable for <none>
Scala コンパイラから。