如何集成最新的Groovy(2.4)和最新的Netbeans(8.2)



这个问题来自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比我们意识到的更多……

  1. 不一致的Groovy封装和支持
  2. 无效的配置-选择/使用特定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-allJAR文件,自带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 Javascript
  • JRuby和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。

相关内容

  • 没有找到相关文章

最新更新