悩みへのご助言
ぶろぐっぽいなんかのwatanabeさんに、ブログでご助言を頂けました^^
悩み1
2番目の選択肢が良いかと。
贅沢な実装はmaven使えば割としようがない気がします。
そんなモノなんですね〜。いや、EclipseもMaven2も、プラグインを作るのは初めてなもので。確かに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>