2

我正在使用 IntelliJ 开发 Griffon 应用程序,并且正在尝试使用 dcm4che 项目库。我已经设法让 IntelliJ 的代码编辑器停止抱怨缺少类,但是当我去运行 Griffon 应用程序时,编译器着火了,抱怨它是unable to resolve class DicomInputStream,等等。

我没有做任何花哨的事情。我所做的只是尝试包含一些简单的 jar 文件,但无论出于何种原因,事情都无法正常工作。

我承认,我在处理类路径问题方面并不是特别精通,而且我只使用 IntelliJ 一段时间,而使用 Griffon / Groovy 的时间更少,但我完全被难住了。

这是失败的导入语句集:

import org.dcm4che2.io.DicomInputStream
import org.dcm4che2.data.DicomObject
import org.dcm4che2.data.DicomElement

这是我在尝试运行或调试应用程序时在 IntelliJ 控制台中收到的一组错误消息:

Base Directory: C:\Users\[REDACTED]\MyApp\MyAppClient
Resolving dependencies...
Dependencies resolved in 698ms.
Running script C:\Program Files (x86)\Griffon\Griffon-0.9.4\scripts\RunApp.groovy
Environment set to development
 [griffonc] Compiling 32 source files to C:\Users\[REDACTED]\.griffon\0.9.4\projects\MyApp\classes
 [griffonc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
 [griffonc] C:\Users\[REDACTED]\MyApp\MyAppClient\griffon-app\controllers\myappclient\SelectRootController.groovy: 9: unable to resolve class org.dcm4che2.data.DicomElement
 [griffonc]  @ line 9, column 1.
 [griffonc]    import org.dcm4che2.data.DicomElement
 [griffonc]    ^
 [griffonc] 
 [griffonc] C:\Users\[REDACTED]\MyApp\MyAppClient\griffon-app\controllers\myappclient\SelectRootController.groovy: 7: unable to resolve class org.dcm4che2.io.DicomInputStream
 [griffonc]  @ line 7, column 1.
 [griffonc]    import org.dcm4che2.io.DicomInputStream
 [griffonc]    ^
 [griffonc] 
 [griffonc] C:\Users\[REDACTED]\MyApp\MyAppClient\griffon-app\controllers\myappclient\SelectRootController.groovy: 8: unable to resolve class org.dcm4che2.data.DicomObject
 [griffonc]  @ line 8, column 1.
 [griffonc]    import org.dcm4che2.data.DicomObject
 [griffonc]    ^
 [griffonc] 
 [griffonc] 3 errors
Compilation error: Compilation Failed

要安装 dcm4che 库,我执行了以下操作:

  1. 下载库二进制文件(-bin zip)并将 zip 解压缩到MyApp\MyAppClient\lib\dcm4che-2.0.25-bin
  2. 在 Project Structure 对话框中,在 Modules->MyAppClient 下,在 Dependencies 选项卡下,单击“Add”并选择文件夹:MyAppClient\lib\dcm4che-2.0.25-bin\dcm4che-2.0.25\lib

此时,代码编辑器停止抱怨无法找到和解析类,但是当我运行或调试应用程序时,我得到了编译错误。无需导入这些类(以及使用它们的代码),一切都可以正常工作。

我能做些什么来解决这个问题?还有哪些其他信息有助于弄清楚发生了什么?

4

1 回答 1

4

正如彼得建议的那样,您可以使用依赖项 DSL 将库配置为依赖项(如果它可从 maven 或 ivy 存储库中获得),或者将其放在 MyApp/lib 中(没有额外的子目录)。这些是 Griffon 制定的约定。

于 2011-12-08T07:41:26.240 回答