clojure引入另一个clojure实现的Java类
2015-11-19 00:19
507 查看
说起来有点绕口,是这么回事。
core.clj文件里面要使用一个Java类,这个Java类(MoveDailyAction)是由同一个项目的clojure代码编译生成的,clojure -> java class请参考之前的博客
clojure实现java类
现在需要将clojure生成的Java类的class文件放在指定的目录下,然后让core.clj能够引用到这个class文件。这就主要靠leiningen工程配置
第一个需要用compile-path设置
:compile-path "%s/classy-files"编译结果会出现在下面的目录
ls target/uberjar+uberjar/classy-files/kafka2hdfs/
core.class core$_main.class MoveDailyAction$_execute.class MoveDailyAction$loading__4910__auto__.class
core$fn__48.class core$mk_topology.class MoveDailyAction$fn__26.class
core__init.class core$submit_topology_BANG_.class MoveDailyAction__init.class
core$loading__4910__auto__.class MoveDailyAction.class MoveDailyAction$_init.class
第二个需要用java-source-paths设置
:java-source-paths ["%s/classy-files"]这样就可以使用第一步编译出来的class文件。
注意,:aot设置时被依赖的clojure类需要先编译,因此放在前面
:aot [kafka2hdfs.MoveDailyAction kafka2hdfs.core]
现在运行命令编译吧:
lein do clean, uberjar
完成。
leiningen官方文档没有记录compile-path,可以参考github的example https://github.com/technomancy/leiningen/blob/master/sample.project.clj
core.clj文件里面要使用一个Java类,这个Java类(MoveDailyAction)是由同一个项目的clojure代码编译生成的,clojure -> java class请参考之前的博客
clojure实现java类
现在需要将clojure生成的Java类的class文件放在指定的目录下,然后让core.clj能够引用到这个class文件。这就主要靠leiningen工程配置
第一个需要用compile-path设置
:compile-path "%s/classy-files"编译结果会出现在下面的目录
ls target/uberjar+uberjar/classy-files/kafka2hdfs/
core.class core$_main.class MoveDailyAction$_execute.class MoveDailyAction$loading__4910__auto__.class
core$fn__48.class core$mk_topology.class MoveDailyAction$fn__26.class
core__init.class core$submit_topology_BANG_.class MoveDailyAction__init.class
core$loading__4910__auto__.class MoveDailyAction.class MoveDailyAction$_init.class
第二个需要用java-source-paths设置
:java-source-paths ["%s/classy-files"]这样就可以使用第一步编译出来的class文件。
注意,:aot设置时被依赖的clojure类需要先编译,因此放在前面
:aot [kafka2hdfs.MoveDailyAction kafka2hdfs.core]
现在运行命令编译吧:
lein do clean, uberjar
完成。
leiningen官方文档没有记录compile-path,可以参考github的example https://github.com/technomancy/leiningen/blob/master/sample.project.clj
相关文章推荐
- Clojure基础环境搭建
- 为了上网,将Fedora换成了Ubuntu。。
- Clojure 4000 Dev. on Eclipse
- 用clojure查看hdfs文件系统
- 有理想的程序员必须知道的15件事(转)
- new begin
- 手动编译Clojure
- 使用Clojure脚本扩展Java项目
- [clojure] 观察器 add-watch
- 为clojure的jar包新建一个.bat批处理文件方法
- 使用Intellij IDEA开发我的第一clojure例子效果
- storm源码分析之topology提交过程
- 回击java已死传言,java位置照旧稳固
- 函数式编程语言天生就慢吗?
- Windows下配置Storm源码阅读环境(vim+ctags)
- [转]每个开发人员都应该知道的8个Linux命令
- 用clojure写的depth first search算法
- 运用Hidden Markov Models写的智能石头剪子布机器人(Clojure)
- 每一个想有所成就的程序员必看!
- clojure学习参考资料