此问题是针对Netbeans v8.0.1的说明。
这个问题现在至关重要,因为我开始使用Spock进行Java测试,因为它是基于Groovy的。
我喜欢Spock,我更喜欢在 Netbeans中使用相同 Groovy版,因为我使用Gradle和命令线。
此外,我正在使用sdkman,这意味着" 正在运作" Groovy版本可以根据我需要处理的项目或软件包的版本进行交换。总之,我希望Netbeans能够与......合作。
目前......
$ groovy -version
Groovy Version: 2.4.7 JVM: 1.8.0_102 Vendor: Oracle Corporation OS: Linux
$
$ gradle -version
------------------------------------------------------------
Gradle 3.1
------------------------------------------------------------
Build time: 2016-09-19 10:53:53 UTC
Revision: 13f38ba699afd86d7cdc4ed8fd7dd3960c0b1f97
Groovy: 2.4.7
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_102 (Oracle Corporation 25.102-b14)
OS: Linux 4.4.0-36-generic amd64
当Groovy和 Gradle项目在命令行上运行时......
$ gradle build
Starting a Gradle Daemon (subsequent builds will be faster)
Gradle version: 3.1
Groovy version: 2.4.7
Java version: 1.8.0_102
:compileJava
:compileGroovy
...
在Netbeans中运行相同的Gradle build.gradle
项目:
Executing: gradle build
Arguments: [-u]
Gradle version: 3.1
Groovy version: 2.4.4
Java version: 1.8.0_102
:compileJava UP-TO-DATE
:compileGroovy UP-TO-DATE
目前我不知道v2.4.4 Groovy来自哪里!虽然我正在制定一个令人不舒服的假设,但我最后会这样做。
对于Netbeans,似乎有两个不同的问题,我将分别介绍。我将首先考虑第二点,因为它可能会比我们意识到的更多地影响# 1 ......
记录的Groovy配置过程
groovy-all.jar
就足够了根据相关问题/评论来判断 ......
mythbuster ...我一直在将此代码段添加到Groovy和Gradle脚本
println "Gradle version: "+ gradle.gradleVersion;
println "Groovy version: "+ GroovySystem.version;
println "Java version: "+ System.getProperty("java.version");
在Windows和Linux上使用netbeans 8.2运行时的输出很奇怪。
Groovy version: 2.1.3
Java version: 1.8.0_102
我在想v2.1.3是Netbeans附带的groovy-all
JAR文件 - 我多么愚蠢:
Netbeans日志显示加载的Groovy模块是:
" Groovy 2.1.7" 罐子:nbinst://org.netbeans.modules.libs.groovy/modules/ext/groovy-all.jar /
我检查了JAR,这个JAR文件报告其版本 2.4.5 :
$ 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
Groovy v2.1.3
来自哪里?我也偶然发现了。我用当前的嵌入式groovy-all(v2.4.7)换掉了捆绑的(和库中的错误标记的)v2.1.7 JAR文件。
当我开始使用Netbeans 8.2时......我运行了我的Groovy主程序:
Gradle version: 3.1
Groovy version: 2.1.3
Java version: 1.8.0_102
哈的!没有区别......现在。查看Netbeans下的Gradle build 的输出(也运行Groovy运行时......):
Executing: gradle build
Arguments: [-u]
Gradle version: 3.1
Groovy version: 2.4.4
Java version: 1.8.0_102
:compileJava UP-TO-DATE
:compileGroovy
汇总; Netbeans似乎体现了以下Groovy运行时版本:
即使我已经建立了一个groovy库: groovy-all-2.4.7.jar
并将此JAR放入Netbeans Groovy模块区域:
/opt/dev/netbeans/home/groovy/modules/ext
groovy-all.jar
# After copying the embeddable/groovy-all-2.4.7.jar
# into Netbeans Groovy/modules ...
#
$ java -jar /opt/dev/netbeans/home/groovy/modules/ext/groovy-all.jar -version
Groovy Version: 2.4.7 JVM: 1.8.0_102 Vendor: Oracle Corporation OS: Linux
仍然没有脚本将Groovy版本报告为:2.4.7。
mis - 引用公主新娘," Groovy与Netbeans的整合......你好像使用这个词很多 。
作为反击点;我找到了Gradle配置......这些语言/平台配置可以满足我的需求:
在Netbeans环境中不能很好地运作的事情是:
为什么Netbeans不支持" Groovy平台"跨所有组件和活动?!
Groovy的好例子是看Netbeans如何支持:
而Groovy似乎到处都是。显然,使用库功能是行不通的。
我想要一些与Netbeans一致的Groovy语言操作。这意味着我需要摆弄Bundles并且变得肮脏,这可能是件好事,因为我所经历的是令人不满意的。
IDEA,Eclipse和Netbeans正在使用OSGi进行组件组装。
在我看来,好像个别插件或简单构建包都包含他们自己的Groovy包。
对于那些与项目或开发人员无法互动的事情来说,这可能是一件好事。
从我的角度来看,我认为如果Groovy是一流语言会更好。所以只有一个Groovy版本在任何特定时间工作。
因此像Grodle,Spock和Groovy脚本一样的基于groovy的工具都是SAME Groovy运行时,同样的AST和不断开启。
希望Stackoverflow集体有足够的洞察力来确定更好地发生事情的方法。
答案 0 :(得分:0)
在项目节点上,右键单击并从菜单中选择“属性”。选择“库”类别。在Compile选项卡中,您将在Compile-time Libraries下看到:“Groovy 2.1.7”。选择它,然后单击“编辑”。在Classath选项卡中,您将在Library Classpath下看到它引用NetBeans安装目录下的groovy-all.jar。
在/ usr / share / groovy的首选groovy安装中,我在embeddable / groovy-all.jar中找到了另一个jar文件。通过删除现有的库类路径并将其替换为此类路径,您可以使用Groovy 2.4.12将项目编译为。