再生成による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">