再生成によるplugin.xmlの上書きを防止する

EMFやGMFで自動生成したファイル群は,のちにカスタマイズされることを前提にされています。そのため,自動生成したファイル群のうち,Javaソースコードについてはメソッドやフィールドに@generatedタグを含むコメント文が付加されています。メソッド等に修正を加えた場合,そのメソッドのコメント文に含まれる@generateタグを削除するか,以下のように修正することにより,再度自動生成した場合に,上記修正が上書きされることを防止することができます。

/**
 * @generated NOT
 */

EMFやGMFで自動生成したファイル群には,Eclipseプラグインを構成する上で重要なファイルであるplugin.xmlも含まれます。plugin.xmlに修正を加えた場合は,どうなるのでしょうか。実は,EMFの場合には,plugin.xmlを一旦生成すると,その後は一切,再生成しません。(したがって,EMFモデル等を修正しその修正内容をplugin.xmlに反映させたい場合には,既存のplugin.xmlファイルを削除する必要があります。)

一方,GMFは,再生成時にplugin.xmlも再生成します。したがって,あまり知られていないかもしれませんが,上記@generatedタグのような仕組みがplugin.xmlにも用意されています。

自動生成されたplugin.xmlの中身をのぞくと,拡張ポイントへの各コントリビューションの登録部分に,以下のような要素が含まれていることが分かります。

<?gmfgen generated="true">

例えば,ある拡張ポイントに登録するクラスを変更した場合,以下のように修正すれば,その後の再生成時にも,その変更が上書きされるのを防止することができます。

<?gmfgen generated="false">