Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向Java项目添加REPL的技术_Java_Scala_Groovy_Clojure_Read Eval Print Loop - Fatal编程技术网

向Java项目添加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文件夹中包含依赖项并手动管理它们

使用Clojure、Scala、JRuby、构建工具等,人们发现哪些技术对用REPL改造Java项目以进行快速实验很有用

我经常需要处理普通的旧Java项目(POJO项目?),而错过了REPL。解决这个问题,但这些都是几年前的问题,而且答复都是过时的


首先,我将介绍一些我用来解决这个问题的技术。

如果项目使用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不提供。