【问题标题】:How-to integrate latest Groovy (2.4) with latest Netbeans (8.2)?如何将最新的 Groovy (2.4) 与最新的 Netbeans (8.2) 集成?
【发布时间】:2016-10-14 14:34:05
【问题描述】:

这个问题来自针对 Netbeans v8.0.1 的注释。

自从我开始使用Spock 进行 Java 测试以来,这个问题现在很关键,因为它是基于 Groovy 的。

我喜欢Spock,我更喜欢使用相同Groovy 版本 Netbeans,就像我在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 平台或版本的配置方法无效。

1. Groovy 配置不一致

记录的 Groovy 配置过程

从相关问题/cmets 那里来看,这根本不是很好用...

一个 mythbuster ...我一直在将这个 sn-p 添加到 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” jar: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-引用 公主新娘,“与 Netbeans 的完美集成......你似乎经常使用这个词。 p>

  • 我想你不知道这意味着什么。”

2. 使用 Netbeans 进行 Groovy 打包

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

  • Gradle(合格
  • 马文
  • Javascript
  • JRuby 和 Ruby
  • Java

在 Netbeans 环境中不能正常工作的事情是:

  • 斯卡拉
  • Gradle(未集成)
  • 时髦的
  • 蚂蚁(是的

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

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

  • Java 平台
  • 马文
  • Gradle - 虽然笨拙,恕我直言,它可以工作

而 Groovy 似乎无处不在。显然,库功能的使用不起作用。

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

假设

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

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

对于不打算与项目或开发人员进行交互的事物来说,这可能是一件好事。


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

因此,Gradle、Spock 和 Groovy 脚本等基于 groovy 的工具都是相同的 Groovy 运行时、相同的 AST 等等。

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

【问题讨论】:

    标签: java netbeans groovy bdd


    【解决方案1】:

    在您的项目节点上,右键单击并从菜单中选择“属性”。选择库类别。在 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。

    【讨论】:

      猜你喜欢
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-19
      相关资源
      最近更新 更多