ごく簡単なことですが、今日の学びも兼ねて書きます。
githubにサンプルコードをあげておきました。
pom.xmlの設定
pom.xml
<plugin>
<groupId>com.theoryinpractise</groupId>
<artifactId>clojure-maven-plugin</artifactId>
<version>1.7.1</version>
</plugin>
を入れる。これでclojureのソースコードをMavenから実行できる。Goalはたとえばclojure:run
、clojure:compile
などがある。詳細はclojure-maven-pluginのgithub参照。
これに加えて
pom.xml
<configuration>
<sourceDirectories>
<sourceDirectory>src/main/clojure</sourceDirectory>
</sourceDirectories>
</configuration>
を指定すればClojureのソースコードの配置を指定できるし、
pom.xml
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
で、Compileフェーズに勝手に実行してくれるようになる。
Clojureを書く
HelloClojure.clj
;src/main/clojure/HelloClojure.clj
(ns HelloClojure)
(defn hello
"My first main"
[]
(println "Hello from Clojure!"))
Javaから呼ぶ
App.java
public static void main( String[] args ) {
// Hello from Java.
System.out.println( "Hello from Java!" );
// Hello from clojure.
Clojure.var("clojure.core/require").invoke(Clojure.read("HelloClojure"));
IFn func = Clojure.var("HelloClojure", "hello");
func.invoke();
}
これで、Clojureで書いたコードをJavaから呼べます。