Pun*_*nit 8 eclipse eclipse-pde eclipse-plugin clojure
我想知道是否有办法在Clojure中开发Eclipse插件.要清楚,问题不在于使用Eclipse编写Clojure代码.
Eclipse和Clojure都在JVM上运行,我觉得应该有办法利用Clojure(及其库)的强大功能来开发插件.我特意看着使用Korma,但总的来说,如果有一种自然的方式,我想将完整的插件移动到clojure.
Lau*_*tit 10
逆时针,Clojure的Eclipse插件,是用混合Java和Clojure编写的.它还使用了clojure.osgi 1.2.10.
因此,这是一个现实的概念证明,它是可能的.和AFAIK,逆时针成功地被数百人使用.
有一些限制,因为:Clojure的命名空间对某些"根类加载器"是"全局的".EG如果你将Clojure包装在一个名为myapp.clojure的包中,那么你可能会有一堆其他的包需要myapp.clojure.比如说myapp.bundle1,myapp.bundle2.当你这样做,并且,从每个bundle,加载内存(require)bundle名称空间,每个将从正确的ClassLoader加载(myapp.bundle1的名称空间将被加载到myapp.bundle1的上下文类加载器中,并且myapp.bundle2的名称空间将加载到myapp.bundle2的上下文类加载器中.这很棒,因为它允许java interop工作正常.
但请记住,最后,从bundle1和bundle2加载的命名空间将由bundle myapp.clojure中的"全局命名空间世界"保存.
说实话,这还没有证明逆时针的问题.因为在同一个功能中,让捆绑包共享一个Clojure实例几乎没问题.
潜在的缺点是:
请注意,对于Eclipse RCP产品而言,与Eclipse插件相反,这些缺点消失了.
如果你想看看Counterclockwise如何重新打包clojure,并使用clojure.osgi,你可以查看它的源代码:
http://github.com/laurentpetit/ccw.clojure.git http://github.com/laurentpetit/ccw.git
HTH,
- 劳伦特
| 归档时间: |
|
| 查看次数: |
1281 次 |
| 最近记录: |