首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取依赖项并使其与IntelliJ项目一起工作?

如何获取依赖项并使其与IntelliJ项目一起工作?
EN

Stack Overflow用户
提问于 2012-12-30 22:40:09
回答 1查看 5.1K关注 0票数 4

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

代码语言:javascript
复制
@Grab(group='org.codehaus.groovyfx', module='groovyfx', version='0.3.1')
import groovyx.javafx.GroovyFX
println GroovyFX.class.name

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

Groovyc:无法解析类groovyx.javafx.GroovyFX

我能够让这个脚本在GroovyConsole中运行,没有太多的问题,就像预期的那样.

我试着抓取另一个随机选择的依赖项(原来是Spring库),它很快就成功了:

代码语言:javascript
复制
@Grab(group='org.springframework', module='spring', version='2.5.6')
import org.springframework.jdbc.core.JdbcTemplate
println JdbcTemplate.class.name

我看不出为什么Spring库应该工作,但是GroovyFX库不工作!

我甚至再次检查了GroovyFx库是否已经被实际下载,并且它应该在那里(在GroovyFx下)。

是什么导致了这个奇怪和非常令人沮丧的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-05 13:24:55

我用groovyConsole (来自groovy-sdk-2.1.0)和IntelliJ IDEA 12.0.3测试了您的问题。我唯一的例外是:

代码语言:javascript
复制
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)不在类路径中。这个可以用

代码语言:javascript
复制
mvn com.zenjava:javafx-maven-plugin:1.3:fix-classpath

上面的命令来自JavaFX Maven插件Wiki。你只需要执行一次。在这一变化之后,groovyConsole和IntelliJ都在工作。我不得不重新启动groovyConsole,这对于IntelliJ来说不是必要的。

有趣的是,我没有在“外部库”下看到GroovyFx。我是使用简单的想法,社区版,没有任何插件。

来自GroovyFX主页的Hello在思想上是开箱即用的,但在groovyConsole中却没有--我还得到了"java.lang.ClassNotFoundException: groovyx.javafx.GroovyFX“。我设法让它使用以下代码运行,但这不是一个很好的解决方案,因为它只在第一次运行时工作,所以您必须重新启动groovyConsole:

代码语言:javascript
复制
@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)
                }
            }
        }
    }
}

我不确定,但我认为原因是这个bug 这里。应该在Groovy2.2中修复,我们将看到。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14095430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档