当我安装Groovy 2.3时,我发现我不能在Netbeans 8上使用它。为什么?因为Netbeans Groovy支持固定在内置的Groovy 2.1中。这与Netbeans支持Ruby、JRuby、Java…你可以添加不同的平台。
(<<p>——strong> 更新 2016-10-14),我为Netbeans 8.2做了这个练习。至少可以说,结果是令人困惑的。我认为Netbeans如果有一个像Java平台这样的工具菜单项来管理不同的Groovy平台,将会受益。或者使用GROOVY_HOME
在这台PC上安装的Groovy是:
- Groovy 2.4.7
- groovy- groovy-all-2.4.7. Jar
这很奇怪。Netbeans库列表中的Groovy库是:
- Groovy 2.1.7
- groovy-all
我实际上从库列表中删除了它,并将其替换为groovy-all 2.4.7。
我将这行添加到Groovy主类中…
println "Groovy version: "+ GroovySystem.version;
println "Java version: "+ System.getProperty("java.version");
输出: Groovy version: 2.1.3
Java version: 1.8.0_102
我一直在进一步寻找。Netbeans log
显示加载的Groovy模块是:
"Groovy 2.1.7"
jar:nbinst://org.netbeans.modules.libs.groovy/modules/ext/groovy-all.jar!/
我检查了这个文件,这个JAR文件报告了它的版本:
java -jar /opt/dev/netbeans/home/groovy/modules/ext/groovy-all.jar -version
Groovy Version: 2.4.5 JVM: 1.8.0_102 Vendor: Oracle Corporation OS: Linux
因此标签:"2.1.7"已过期。
值得怀疑的是当我从Netbeans运行groovy时,groovy 2.1.3从哪里来?
—[end update]—
我从早期的Netbeans版本中扫描了其他涉及此问题的Stackoverflow问题。我收集到的一致意见是,您可以"破解"Groovy捆绑版本的安装方式,并且它应该能够工作。一个Groovy发行版不仅仅是一个JAR文件,所以对我来说似乎还不够。因此,在Groovy的新版本中应该有更多的事情要做。此外,这个过程意味着不能在Netbeans中使用两个不同的Groovy配置文件。
- 如何在netbeans中使用Groovy 2.0
- Groovy在NetBeans IDE中的支持
- 在NetBeans中支持Groovy
不能说Netbeans不能像支持Ruby和Java那样支持多个版本的Groovy——IntelliJ IDEA和Eclipse一样支持多个版本。
我希望有人能提出一个建议,把Groovy 2.1完全替换成Groovy 2.3。
或者,有没有人看到类似于Ruby平台和Java平台的"语言支持"插件来支持语言,或者更通用的方式来运行脚本作为外部工具,Gradle或通过Maven?我绝对认为仅仅依靠捆绑的单一版本来支持脚本语言是一种有限的方式。这意味着一个项目将被"旧的"语言bug和其他问题所困扰,仅仅是因为IDE缺乏灵活性。为了在我的项目中使用Groovy 2.4.3,我按照Tools> Options> Miscellaneous中的Groovy选项卡中的说明:
- 从groovy-lang.org下载Groovy 2.4.3二进制发行版
- 在Tools> Libraries 中创建新的Groovy 2.4.3类库
- 设置库的Classpath jar为
groovy-2.4.3/embeddable/groovy-all-2.4.3.jar