XtextおよびXtendプロジェクトのベータ版を終了しました。今度はそれをEclipseと統合したいと思います。この新しいEclipseを使用して、「新しい'mydsl'プロジェクト」を選択できるようにしたいのですが、この新しいプロジェクトでは、デフォルトで.jarを参照する必要があります。mydslの空のファイルでもあります。可能であれば、プロジェクトにXtextの性質を追加することをやめます。
1 に答える
この質問には、重要なプロセスがいくつかあります。
「新しい'yourDSL'プロジェクト」を選択できるようにするには、独自のプロジェクトウィザードを実装する必要があります。つまり、plugin.xmlファイルで、拡張ポイント「org.eclipse.ui.newWizards」に貢献し、INewWizardインターフェースを実装する必要のあるクラスを作成する必要があります。これを行うには、Wizardクラスを拡張します。
そのウィザードは、performFinish()タスクで、必要なNatureを指定できるIJavaProjectをプログラムで作成する必要があります。また、ソースフォルダーと出力フォルダーを指定し、クラスパスを構成する(クラスパスエントリを追加する)必要があります。このリンクでは、プロジェクトの作成方法について詳しく説明しています。http://www.pushing-pixels.org/2008/11/18/extending-eclipse-creating-a-java-project-without-displaying-a-wizard.html
前の手順(#2)では、カスタムプロジェクトを作成するときに、パッケージ、フォルダー、ファイルを追加できるため、空の.mydslファイルを追加できます。
今、最もトリッキーな部分。デフォルトで.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」フォルダーにコピーすることです。プラグインをエクスポートするには:プロジェクトを選択します->右クリック->エクスポート->プラグイン開発->デプロイ可能なプラグインとフラグメント...