悩みへのご助言

ぶろぐっぽいなんかのwatanabeさんに、ブログでご助言を頂けました^^

悩み1

2番目の選択肢が良いかと。
贅沢な実装はmaven使えば割としようがない気がします。

そんなモノなんですね〜。いや、EclipseMaven2も、プラグインを作るのは初めてなもので。確かにMaven2プラグインの中身って、クラスはMojo一つだけっていう実装も多い気がします。

もうひとつ、2の問題点として「Jiemamyに対するPorterプラグイン」(実際はEclipseに対するプラグイン)を作ろうと思った時、1つのPorterにつき2つのEclipseプラグイン(UIとLOGIC)を作らなければならない、ということが挙げられます。

私がつくる場合は、内部熟知しておりますので問題はないのですが、第三者がPorterを作成しようとした場合、標準提供のPorterをサンプルコードとして参考にして作っていくことになると思いますが、という事情*1がわかりにくいかな、と思ったのです。

悩み2

これってGraphicExporterとかですかね?(テキトー

GraphicExporterは、別の問題を孕んでいて、Maven2では実行できないんです@@; GraphicExporterは、LOGICの方にEclipseAPI依存が発生しちゃってます。まぁ、モデルをダイアグラムとして表示する機能はGEFの機能で、そのGEFからスクリーンショットを取得して、ファイルに保存しているので、Mavenだけでは画像を保存できる訳がない、という状態です。

Jiemamyモデルファイルからダイアグラムを構築するロジックを、EclipseAPIに頼っているので、依存する。この依存を解消する為には、このロジックを独自実装しなければならない気がします。車輪の再発明??

まぁ、この「別の問題」については、また後日。

前にmavenでいろいろexportしていたときに思ったんですが、
(ex|in)porterの設定をxmlとかに書き出しておいて、それにそってporterが動く実装とかダメですかね?
pom.xmlにコンナ感じでかけるといいかなーと思ったり思わなかったり

<configuration>
  <inputFile>${basedir}/db/schema/ERD.jer</inputFile>
  <exporter>jp.xet.jiemamy.porter.exporter.GraphicExporter</exporter>
  <portPlan>cfg.xml</portPlan>
</configuration>

現状、似たようなことはしています。watanabeさんの例のように、設定を外出しにはしていませんが、「(ex|in)porterの設定」は、pom.xmlに書き込むようになっています。portPlanの部分が、以下のように直接書かれています。

  <parameter>
    <outputFile>database/jiemamy.sql</outputFile>
    <drop>false</drop>
    <DML>false</DML>
    <schema>false</schema>
    <overwrite>true</overwrite>
  </parameter>

*1:1つのPorter(機能)が2つのEclipseプラグインに分かれているという実態、分けなければいけない事情、それぞれがどのような対応関係なのか、それぞれの実装クラスはどれなのか