2017-10-04 7 views
0

をロードしません。ほとんどのものは、第10章で説明したライブラリを追加するまで動作します。ライブラリを明示的にロードする単体テストでは、ライブラリファイルがロードされ、暗黙のインポートが成功し、DSLコードのlibに定義されている型を参照できます。 しかし、IDEを開くと自動的にライブラリがロードされません。ライブラリが暗黙的なクラスをロードしようとすると、NPEが終了します。ユニットテストで明示的に呼び出されるloadLibメソッドは、ログメッセージが一度も出力されないためIDEからどこでも呼び出されていないことは明らかです。XTEXT IDEは私がBettiniのブック(第2版)でsmalljava例以下日食酸素でXTEXT 2.12を使用してDSLを構築していますライブラリ

にはどうすれば起動時にライブラリをロードするためのIDEを得るのですか?特に、私は何を呼び出すべきかを知っている、私はちょうどどこIDEからそれを呼び出すか分からない。

ありがとうございました!

+0

どのようにnpeのように見えるのですか?スコープに適応しましたか? –

+0

あなたはモデルファイルのクラスパス上にlibを置く必要はありませんか? (モデルプロジェクトのdef/dependencyでエクスポート) –

+0

助けてくれてありがとう! – user2000974

答えて

0

ライブラリを含むパッケージは、ライブラリファイルとテストモデルファイルを含むプラグインを含むプラグインによってエクスポートされていることを確認してくださいは

負荷libには、によって呼び出されることはありませんライブラリファイルを含むプラグインに依存していますide。 ideはプロジェクトを含むモデルのクラスパスから直接ファイルを構築します

+0

「テストモデルファイルを含むプラグイン」という意味がわかりません。ここでのユースケースは、dslプロジェクトでRun As - > Eclipse Applicationを選択してIDEを開いていることです。次に、新しいワークスペースで新しいdslファイルを開きます。テスト用のdslファイルはプラグインに含まれていません。しかし、私は、ライブラリがデフォルトのインポートであると想定されている場合、この依存関係を持つ必要があるのはIDEプラグインだと思います。 loadLibメソッドはテストでの使用のみを目的としていますか?ありがとう! – user2000974

+0

少なくとも、トピック "org.example.smalljava; Bettini、Lorenzoの最初の段落で読んだ本の初版はありません。XtextとXtend(Kindle-Position4614)でドメイン固有の言語を実装しています。 Packt Publishing。Kindle-Version " –

+0

Eclipseを実行してプロジェクトを作成し、org.example.smalljavaプロジェクトに依存関係を追加すると、mainlib.smalljavaのクラスが自動的に利用可能になります。 Bettini、Lorenzo。 XtextとXtendを使ってドメイン固有の言語を実装する(Kindle-Positionen4611-4612) Packt Publishing。 Kindle版。 –

関連する問題