Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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 を選択します。
image.png

先ほど作成したastah プラグインのフォルダを指定します。
image.png

Import project form external model > Mavenと選択します。

以降のページはすべてデフォルトで大丈夫そうです。
image.png

エディタの右下に以下のダイアログが出た場合は、Enable Auto-Importを選択してください。Mavenで指定されたライブラリを自動ダウンロードしてプロジェクトに組み入れてくれます。

インポートが完了したら、一度ビルドしてみましょう。
ターミナルを開き(View > Tool Windows > Terminal、またはエディタ下部Terminal、またはAlt+F12)

> astah-build
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

BUILD SUCCESSとなることを確認します。続けて以下コマンドで、作成中のプラグインが同梱されたastahを起動します。

> astah-launch

起動したastahで新規プロジェクトを開き、ツールメニューから以下の項目を選択します。
image.png
以下のダイアログが表示されれば、成功です。

Kotlin化

mavenにKotlinの設定を加えるためにプロジェクトにダミーのKotlinファイルを追加します。
src/main/javaフォルダを右クリック > New > Kotlin File/Class
image.png

右下に以下のダイアログが表示されるので、クリックしas Kotlin (Java with Maven) moduleを選択します。
image.png

pom.xmlの修正

pom.xmlの以下3箇所を修正します。
maven-compiler-pluginのバージョンを修正します。2.8.1 → 3.8.0

pom.xml(304行付近)
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
 -->            <version>3.8.0</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

<phase>compile</phase>となっている箇所を、<phase>process-sources</phase>に変更します。

pom.xml(218行付近)
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
 -->                    <phase>process-sources</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>

${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でプラグインを開発する準備が整いました。

今回のコード

https://github.com/s-hosoai/astah-plugin-jigs/tree/master/select-neighbor-plugin

次回

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした