2

XtextおよびXtendプロジェクトのベータ版を終了しました。今度はそれをEclipseと統合したいと思います。この新しいEclipseを使用して、「新しい'mydsl'プロジェクト」を選択できるようにしたいのですが、この新しいプロジェクトでは、デフォルトで.jarを参照する必要があります。mydslの空のファイルでもあります。可能であれば、プロジェクトにXtextの性質を追加することをやめます。

4

1 に答える 1

6

この質問には、重要なプロセスがいくつかあります。

  1. 「新しい'yourDSL'プロジェクト」を選択できるようにするには、独自のプロジェクトウィザードを実装する必要があります。つまり、plugin.xmlファイルで、拡張ポイント「org.eclipse.ui.newWizards」に貢献し、INewWizardインターフェースを実装する必要のあるクラスを作成する必要があります。これを行うには、Wizardクラスを拡張します。

  2. そのウィザードは、performFinish()タスクで、必要なNatureを指定できるIJavaProjectをプログラムで作成する必要があります。また、ソースフォルダーと出力フォルダーを指定し、クラスパスを構成する(クラスパスエントリを追加する)必要があります。このリンクでは、プロジェクトの作成方法について詳しく説明しています。http://www.pushing-pixels.org/2008/11/18/extending-eclipse-creating-a-java-project-without-displaying-a-wizard.html

  3. 前の手順(#2)では、カスタムプロジェクトを作成するときに、パッケージ、フォルダー、ファイルを追加できるため、空の.mydslファイルを追加できます。

  4. 今、最もトリッキーな部分。デフォルトで.jarファイルを参照するには、いくつかの方法があります。最も簡単な方法は、事前に.jarパスを知っている場合、その.jarファイルを指すCPE_LIBRARYタイプのクラスパスエントリを(手順2で)追加することで参照を追加できますが、パスを何らかの方法で知る必要があります。私の場合、.jarファイルはプラグインとしてエクスポートされたライブラリであるためパスがわかりませんでした。そのため、インストールされたプラグインの中からプラグインライブラリ(.jarファイル)を検索するIClasspathContainerを実装することになりました。次の手順でプラグインを検索できます。

Bundle bundle = Platform.getBundle("com.my.libraryPlugin");

File bundleFile = FileLocator.getBundleFile(bundle);

...そして、ステップ2で追加するのは、CPE_CONTAINERタイプのクラスパスエントリです。

JavaCore.newContainerEntry("MY_CONTAINER");

IClasspathContainerの詳細については、http: //www.ibm.com/developerworks/opensource/tutorials/os-eclipse-classpath/section2.htmlを参照してください。

5-あなたはおそらくこれを行う方法をすでに知っています。最後のステップは、DSLプラグインをエクスポートし、Eclipseインストールの「plugins」フォルダーにコピーすることです。プラグインをエクスポートするには:プロジェクトを選択します->右クリック->エクスポート->プラグイン開発->デプロイ可能なプラグインとフラグメント...

于 2012-08-24T18:26:41.090 に答える