如何将最新的Groovy(2.4)与最新的Netbeans(8.2)集成在一起?

时间:2016-10-14 14:34:05

标签: java netbeans groovy bdd

此问题是针对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 ......

  1. 不一致的Groovy包装和支持
  2. 选择/使用特定Groovy平台或版本的配置方法无效。
  3. 1. Groovy配置不一致

    记录的Groovy配置过程

    根据相关问题/评论来判断 ......

    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运行时版本:

    • 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。

    mis - 引用公主新娘," Groovy与Netbeans的整合......你好像使用这个词很多

    • " 我不认为你知道这意味着什么。"

    2.使用Netbeans进行Groovy打包

    作为反击点;我找到了Gradle配置......这些语言/平台配置可以满足我的需求:

    • Gradle(合格
    • 的Maven
    • 的Javascript
    • JRuby和Ruby
    • 爪哇

    在Netbeans环境中不能很好地运作的事情是:

    • Scala的
    • Gradle(未整合)
    • Groovy的
    • Ant(

    为什么Netbeans不支持" Groovy平台"跨所有组件和活动?!

    Groovy的好例子是看Netbeans如何支持:

    • Java平台
    • 的Maven
    • Gradle - 虽然笨拙的imho,但是有效。

    而Groovy似乎到处都是。显然,使用库功能是行不通的。

    我想要一些与Netbeans一致的Groovy语言操作。这意味着我需要摆弄Bundles并且变得肮脏,这可能是件好事,因为我所经历的是令人不满意的。

    假设

    IDEA,Eclipse和Netbeans正在使用OSGi进行组件组装。

    在我看来,好像个别插件或简单构建包都包含他们自己的Groovy包。

    对于那些与项目或开发人员无法互动的事情来说,这可能是一件好事。

    从我的角度来看,我认为如果Groovy是一流语言会更好。所以只有一个Groovy版本在任何特定时间工作。

    因此像Grodle,Spock和Groovy脚本一样的基于groovy的工具都是SAME Groovy运行时,同样的AST和不断开启。

    希望Stackoverflow集体有足够的洞察力来确定更好地发生事情的方法。

1 个答案:

答案 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将项目编译为。