2

IntelliJ を使用して Griffon アプリに取り組んでおり、dcm4che プロジェクト ライブラリを使用しようとしています。IntelliJ のコード エディターがクラスの欠落について不平を言うのをやめさせることができましたが、Griffon アプリを実行すると、コンパイラーが炎上し、それがunable to resolve class DicomInputStream.

派手なことはしていません。私がやっているのは、いくつかの単純な jar ファイルを含めようとしているだけですが、何らかの理由で、物事が正しく機能していません。

確かに、私はクラスパスの問題を扱うことに特に精通していません。IntelliJ を使用したのはほんの少しの時間で、Griffon/Groovy を使用したのはさらに短い時間ですが、完全に困惑しています。

失敗する import ステートメントのセットは次のとおりです。

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. [プロジェクト構造] ダイアログの [モジュール] -> [MyAppClient] の [依存関係] タブで、[追加] をクリックしてフォルダーを選択します。MyAppClient\lib\dcm4che-2.0.25-bin\dcm4che-2.0.25\lib

この時点で、コード エディターは、クラスを見つけて解決できないというエラーを表示しなくなりますが、アプリケーションを実行またはデバッグすると、コンパイル エラーが発生します。これらのクラス (およびそれらを使用するコード) をインポートしなくても、すべてが正常に機能します。

これを解決するにはどうすればよいですか? 何が起こっているのかを理解するのに役立つ他の情報は何ですか?

4

1 に答える 1

4

Peter が示唆するように、依存関係 DSL を使用してライブラリを依存関係として構成するか (maven または ivy リポジトリから入手できる場合)、MyApp/lib 内に配置します (追加のサブディレクトリはありません)。これらは、グリフォンによって設定された規則です。

于 2011-12-08T07:41:26.240 に答える