groovy – 如何获取依赖项并使其与IntelliJ项目一起使用?
我想在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显示在“外部库”下,编辑器不会抱怨之后缺少类!)但是,当我运行脚本时,它会抛出一个错误:
我能够在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测试了你的问题.我得到的唯一例外是:
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',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',stops: [CYAN,DODGERBLUE]) effect dropShadow(color: DODGERBLUE,radius: 25,spread: 0.25) } } } } } 我不确定,但我认为原因是这个错误here.应该在Groovy 2.2中修复,我们会看到. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |