用Java调用Clojure

虽然很简单,但为了今天的学习也写一下。

我在GitHub上上传了示例代码。

pom.xml的配置

<plugin>
    <groupId>com.theoryinpractise</groupId>
    <artifactId>clojure-maven-plugin</artifactId>
    <version>1.7.1</version>
</plugin>

使用Maven将Clojure源代码导入,这样就可以通过Maven运行它了。可以使用一些目标(Goal),如clojure:run、clojure:compile等。有关详细信息,请参考clojure-maven-plugin的GitHub页面。

除此之外

<configuration>
    <sourceDirectories>
        <sourceDirectory>src/main/clojure</sourceDirectory>
    </sourceDirectories>
</configuration>

如果指定了这个,就可以指定Clojure源代码的位置。

<execution>
    <id>compile</id>
    <phase>compile</phase>
    <goals>
        <goal>compile</goal>
    </goals>
</execution>

所以,现在可以自动执行Compile阶段。

写Clojure

;src/main/clojure/HelloClojure.clj
(ns HelloClojure)
(defn hello
  "My first main"
  []
  (println "Hello from Clojure!"))

从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();
}

用这个,可以从Java调用用Clojure编写的代码。

请提供参考文献

    • How to use Maven to build Clojure code

 

    talios/clojure-maven-plugin | GitHub
bannerAds