这个问题来自Netbeans v8.0.1的注释。
- 想知道如何使用Groovy 2.3与Netbeans 8?
这个问题现在很关键,因为我开始使用Spock进行Java测试,因为它是基于Groovy的。
我喜欢Spock,我更喜欢与相同的一起工作。 Netbeans中的Groovy版本,就像我在Gradle和命令行中使用的那样。
另外,我使用的是sdkman,这意味着">工作"Groovy版本可以根据我需要工作的项目或包的版本进行交换。总之,我想Netbeans工作与…
目前- Groovy版本
目前…
$ 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
和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中运行相同的Gradlebuild.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平台或版本的方法。
1。不一致的Groovy配置
文档化的Groovy配置过程
- Advice似乎认为只要将Groovy库更改为最新的
groovy-all.jar
就足够了 - http://www.areaofthoughts.com/2011/11/upgrading groovy - - netbeans ide 71. html
- https://netbeans.org/features/groovy/
从相关的问题/评论来看,这并没有很好地工作…
- 如何在netbeans中使用Groovy 2.0
- 一点点的谷歌给你超过10,000的点击和
- 首页上的一些bug似乎是活跃的。
Amythbuster…我一直在把这段代码添加到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是groovy-all
JAR文件,自带Netbeans -我多么愚蠢:
Netbeans日志显示加载的Groovy模块是:
" Groovy 2.1.7 "jar: nbinst://org.netbeans.modules.libs.groovy/模块/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构建的输出(它也运行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运行时版本:
- 2.1.3
- 2.1.7 如果是2.4.4
- 2.4.5
尽管我已经建立了一个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。
Tomis-quoteThe Princess BrideGroovy与Netbeans的集成…你好像经常用这个词。
- ">我想你不知道这是什么意思。">
2。使用Netbeans打包Groovy
作为对应点;我找到了Gradle配置…这些语言/平台配置可以满足我的需求:
- Gradle (合格 Maven JavascriptJRuby和Ruby
- Java
在Netbeans上下文中不能很好地工作的东西是:
Scala- Gradle(未集成)Groovy
- 蚂蚁()
为什么Netbeans不能支持一个跨所有组件和活动的"Groovy平台"?
关于Groovy的好例子是看看Netbeans是如何支持的:
Java平台- Maven
- Gradle -虽然笨拙,但它可以工作
而Groovy似乎到处都是。显然,库功能的使用不正常。
我想要一些与Netbeans一致的Groovy语言操作。如果这意味着我需要摆弄bundle,然后变得肮脏,那么这可能是一件好事,因为我正在经历的是不满意的。
假设:
IDEA、Eclipse和Netbeans都使用OSGi进行组件组装。
在我看来,好像单个插件或简单的构建包都包含了自己的Groovy包。
对于不打算与项目或开发人员交互的东西来说,这可能是一件好事。
从我的角度来看,我认为如果Groovy是第一类语言会更好。所以在任何时候都只有一个Groovy版本在工作。
所以基于groovy的工具,比如Gradle, Spock和groovy脚本都是相同的groovy运行时,相同的AST等等。
希望Stackoverflow集体有足够的洞察力来确定方法,使事情发生得更好。
在项目节点上右键单击并从菜单中选择Properties。选择Libraries类别。在Compile选项卡中,你会在编译时库下面看到:"Groovy 2.1.7"。选择它,然后点击"编辑"。在Classath选项卡中,您将在Library Classpath下看到它引用了NetBeans安装目录下的groovy-all.jar。
在我喜欢的/usr/share/groovy安装中,我在embeddable/groovy-all.jar找到了一个替代jar文件。通过删除现有的库类路径并用这个类路径替换它,您可以将项目编译为使用Groovy 2.4.12。