gpt4 book ai didi

intellij-idea - 如何获取依赖项并使其与 IntelliJ 项目一起使用?

转载 作者:行者123 更新时间:2023-12-04 23:32:03 24 4
gpt4 key购买 nike

我正在尝试在 IntelliJ 12 中启动一个 GroovyFX 项目。
但是,我无法让 IntelliJ 编译和运行以下简单脚本(以尽可能简单的方式重现问题):

@Grab(group='org.codehaus.groovyfx', module='groovyfx', version='0.3.1')
import groovyx.javafx.GroovyFX
println GroovyFX.class.name

我使用 IntelliJ 对 Grape's Grab 的支持将 groovyfx 添加为我的模块的依赖项(该 jar 显示在“外部库”下,编辑器不会提示该类在那之后丢失了!)但是,当我运行脚本时,它抛出一个错误:

Groovyc: unable to resolve class groovyx.javafx.GroovyFX



我能够让这个脚本在 GroovyConsole 中正常工作,没有太多问题,并且符合预期......

我尝试抓取另一个随机选择的依赖项(原来是一个 Spring 库),它直接工作:
@Grab(group='org.springframework', module='spring', version='2.5.6')
import org.springframework.jdbc.core.JdbcTemplate
println JdbcTemplate.class.name

我看不出为什么 Spring 库应该工作的充分理由,但 GroovyFX 库却不行!!!!

我什至仔细检查了 GroovyFx 库是否已实际下载,它应该在哪里(在 {user.home}/.groovy/grapes/{group}/{module}/jars/下)

什么会导致这个奇怪且非常令人沮丧的问题?

最佳答案

我使用 groovyConsole(来自 groovy-sdk-2.1.0)和 IntelliJ IDEA 12.0.3 测试了您的问题。我得到的唯一异常(exception)是:

Caught: java.lang.NoClassDefFoundError: javafx/application/Application
java.lang.NoClassDefFoundError: javafx/application/Application
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
... 1 more

这是因为 JavaFX 运行时 (jfxrt.jar) 不在类路径中。这可以用
mvn com.zenjava:javafx-maven-plugin:1.3:fix-classpath

上面的命令取自 JavaFX Maven Plugin Wiki .您只需执行一次。在那之后,groovyConsole 和 IntelliJ 都在工作。我不得不重新启动 groovyConsole,这对于 IntelliJ 来说不是必需的。

有趣的是,我在“外部库”下看不到 GroovyFx-jar。我正在使用没有任何插件的普通 IDEA 社区版。

GroovyFX 主页上的 Hello World 在 IDEA 中是开箱即用的,但在 groovyConsole 中却没有——我还得到“java.lang.ClassNotFoundException: groovyx.javafx.GroovyFX”。我设法让它使用以下代码运行,但这不是一个好的解决方案,因为它仅在第一次运行时有效,因此您必须重新启动 groovyConsole:
@GrabConfig(systemClassLoader=true, initContextClassLoader=true)
@Grab(group='org.codehaus.groovyfx', module='groovyfx', version='0.3.1')
import static groovyx.javafx.GroovyFX.start

start {
stage(title: 'GroovyFX Hello World', visible: true) {
scene(fill: BLACK, width: 500, height: 250) {
hbox(padding: 60) {
text(text: 'Groovy', font: '80pt sanserif') {
fill linearGradient(endX: 0, stops: [PALEGREEN, SEAGREEN])
}
text(text: 'FX', font: '80pt sanserif') {
fill linearGradient(endX: 0, stops: [CYAN, DODGERBLUE])
effect dropShadow(color: DODGERBLUE, radius: 25, spread: 0.25)
}
}
}
}
}

我不确定,但我认为原因是这个错误 here .应该在 Groovy 2.2 中修复,我们将看到。

关于intellij-idea - 如何获取依赖项并使其与 IntelliJ 项目一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com