astah plugin tipsの第一回です。
今回はKotlinでプラグイン開発を行う環境を整えていきます。ここで作ったプロジェクトは引き続き第二回で利用します。
プロジェクトの生成
適当なフォルダでコマンドプロンプトを開き、以下コマンドを入力し、必要な項目を入力します。
> astah-generate-project
Define value for property 'groupId': : com.astah.plugin.jigs
mavenのグループIDを入力します。一連のプロジェクト群をまとめる名前をつけておくといいでしょう。
本連載ではモデリングを補助するツール群ということで、plugin.jigs(治具)と名付けました。
Define value for property 'artifactId': : select-neighbor-plugin
このプラグインの名前を指定します。
Define value for property 'version': 1.0-SNAPSHOT: :
このプラグインのバージョンを指定します。デフォルトのままで問題ありません。
Define value for property 'package': com.astah.plugin.jigs : :com.astah.plugin.selectneighbor
パッケージ名を指定します。デフォルトではgroupIdと同じですが、同じgroupIdのプロジェクトが増えてくるとnamespaceが被ってくるためこのプロジェクトのパッケージ名を継ぎ足した方が良いでしょう。
IntelliJにプロジェクトをImportする
IntelliJを開き、File > New > Project from Existing Sources を選択します。
先ほど作成したastah プラグインのフォルダを指定します。
Import project form external model > Mavenと選択します。
エディタの右下に以下のダイアログが出た場合は、Enable Auto-Importを選択してください。Mavenで指定されたライブラリを自動ダウンロードしてプロジェクトに組み入れてくれます。
インポートが完了したら、一度ビルドしてみましょう。
ターミナルを開き(View > Tool Windows > Terminal、またはエディタ下部Terminal、またはAlt+F12)
> astah-build
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
BUILD SUCCESSとなることを確認します。続けて以下コマンドで、作成中のプラグインが同梱されたastahを起動します。
> astah-launch
起動したastahで新規プロジェクトを開き、ツールメニューから以下の項目を選択します。
以下のダイアログが表示されれば、成功です。
Kotlin化
mavenにKotlinの設定を加えるためにプロジェクトにダミーのKotlinファイルを追加します。
src/main/javaフォルダを右クリック > New > Kotlin File/Class
右下に以下のダイアログが表示されるので、クリックしas Kotlin (Java with Maven) moduleを選択します。
pom.xmlの修正
<build>内のpluginを以下のように並べ替えます。maven-compiler-pluginが重複している場合は、片方を消します。(内容は次項参照)
- maven-dependency-plugin
- maven-resources-plugin
- astah-maven-plugin
- kotlin-maven-plugin
- maven-compiler-plugin
- maven-bundle-plugin
maven-compiler-pluginのバージョンを修正します。2.8.1 → 3.8.1
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
--> <version>3.8.1</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
maven-bundle-pluginのバージョンを修正します。 → 3.5.0
${astahPath}
となっているところを${env.ASTAH_HOME}
に変更します。(astah-buildコマンドは${astahPath}
を展開するが、IntelliJでは参照できないため。)
<dependencies>
<dependency>
<groupId>com.change_vision.astah</groupId>
<artifactId>astah-api</artifactId>
<version>${astah.version}</version>
<scope>system</scope>
--> <systemPath>${env.ASTAH_HOME}/astah-api.jar</systemPath>
</dependency>
JavaコードのConvert
次にJavaのコードをすべてKotlinに変換します。プロジェクトビューからプロジェクトのルートフォルダを選択肢右クリック > Convert Java File to Kotlin File
コードの修正
少しコードを修正します。runメソッドにoverrideを追加します。
class TemplateAction : IPluginActionDelegate {
override fun run(window: IWindow): Any? {
try {
再ビルド、実行
> astah-build
> astah-launch
ビルドが通り、メニューが表示され、ダイアログが表示されることを確認します。
これでKotlinでプラグインを開発する準備が整いました。
今回のコード