向Java项目添加REPL的技术
使用Clojure、Scala、JRuby、构建工具等,人们发现哪些技术对用REPL改造Java项目以进行快速实验很有用 我经常需要处理普通的旧Java项目(POJO项目?),而错过了REPL。解决这个问题,但这些都是几年前的问题,而且答复都是过时的向Java项目添加REPL的技术,java,scala,groovy,clojure,read-eval-print-loop,Java,Scala,Groovy,Clojure,Read Eval Print Loop,使用Clojure、Scala、JRuby、构建工具等,人们发现哪些技术对用REPL改造Java项目以进行快速实验很有用 我经常需要处理普通的旧Java项目(POJO项目?),而错过了REPL。解决这个问题,但这些都是几年前的问题,而且答复都是过时的 首先,我将介绍一些我用来解决这个问题的技术。如果项目使用Maven,gmaven插件和附带的mvn groovy:shell会很有帮助,尽管获得它可能会很困难 对于那些不使用Maven的项目,一种常见的模式是在lib文件夹中包含依赖项并手动管理它们
首先,我将介绍一些我用来解决这个问题的技术。如果项目使用Maven,gmaven插件和附带的
mvn groovy:shell
会很有帮助,尽管获得它可能会很困难
对于那些不使用Maven的项目,一种常见的模式是在lib文件夹中包含依赖项并手动管理它们。对于这些,我使用了groovy:
groovysh -cp `echo lib/*.jar | sed 's/ /:/g'`
…或clojure:
java -cp /usr/local/Cellar/clojure/1.3.0/clojure-1.3.0.jar:`echo lib/*.jar | sed 's/ /:/g'` clojure.main
默认的Clojure包装也可以是。这个问题主要是关于构建系统以及说服现有构建系统合并REPL的潜在复杂性。我喜欢这两种语言的一点是它们都提供了开箱即用的REPL支持。不幸的是,将现有项目从Ant/Maven/whatever迁移到其中一个可能并不简单
但是,如果您现有的项目已经发布到Maven或Ivy存储库(或者可以很容易地说服您这样做),那么您可以创建一个新的sbt或Leiningen项目,导入现有项目发布的人工制品,您完成了…我在
~/bin/
中有一个脚本,它只包含scala-cp目标/类:`mvn依赖项:构建类路径| grep“^[^\[]”`
用于Scala无插件Maven项目。我也在寻找构建工具之外的解决方案。sbt、lein和mvn都提供REPL,但ant、gradle和make不提供。