astah plugin tips#1_Kotlinでastah pluginを作る環境を整える


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

pom.xml(304行付近)
            <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では参照できないため。)

pom.xml(304行付近)
    <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を追加します。

TemplateAction.kt(18行目付近)
class TemplateAction : IPluginActionDelegate {

    override fun run(window: IWindow): Any? {
        try {

再ビルド、実行

> astah-build
> astah-launch

ビルドが通り、メニューが表示され、ダイアログが表示されることを確認します。
これでKotlinでプラグインを開発する準備が整いました。

今回のコード

次回

astah plugin tips#2 選択した要素に繋がっているものを選択する

前回
astah plugin tips#0_はじめに