Grails開発用に、開発支援プラグイン作ってみたよ

2021-02-24Grails

こちらの記事に感化され、Grailsで自分用プラグインを作成してみました。



機能

  1. graisl create-domain-class コマンドで作成されるDomainクラス(毎回記述する固定プロパティを追加)
  2. Morph eXchange にアップロード、デプロイするための grails deploy-morph コマンド
  3. grails generate-all コマンド実行時に、すでにcontroller、viewが存在した場合上書きをするかを聞かれるが、面倒なので強制生成する graisl generate-all-force コマンド

インストール

対象プロジェクトで、以下のコマンドを実行。

$ grails install-plugin http://genzouw.googlepages.com/grails-development-utilities-0.1.zip

機能1について

通常は空のDomainクラスが作成されますが、いくつかプロパティが追加されたソースが生成されます。

@artifact.package@class @artifact.name@ {
    /*
    static hasMany = [
    ]
    */

    /*
    static belongsTo = [
    ]
    */

    Date dateCreated
    Date lastUpdated

    static constraints = {
        dateCreated(editable:false)
        lastUpdated(editable:false)
    }
}

僕がGrailsアプリを作成しているときは大抵以下のプロパティは必須としています。したがって、それらを出力内容に追加しました。

  • dateCreated
  • lastUpdated
  • hasMany
  • belongTo

機能2について

Morph eXchange サーバーは無料でGrailsアプリを配置できるサーバーですが、ここでは導入方法は割愛します。(要望があれば投稿しますね・・・)
実行するためには、 application.properties ファイルに以下の2つの設定を追記します。(それぞれ、morphで使用するユーザー名、パスワードです。)

  • morph.username
  • morph.password

設定後、 grails deploy-morph コマンドで配置が始まります。( grails war コマンドであらかじめwarファイルを作成しておきましょう)

機能3について

  • いたって単純です。通常の grails generate-all コマンドと同じですが、強制的にcontroller、viewを作成します。
  • すでにリソースがあった場合にはプロジェクト直下に backup フォルダを作成し、そこに配置します。
  • ドメインを複数指定し、 grails generate-all-force compnay employee といった実行も可能です。(生成対象のドメインは、必ず1つ以上指定が必要です。)

ひとこと

自分では、結構よくできたと思います。

そのほかこんなこと毎回コーディングしたりしているので、プラグインあったらいいなぁ、というようなのがあったらコメントください。

追記-2008/10/15

最新のmorph-pluginはこちらから。

grails install-plugin http://grails-morph-plugin.googlecode.com/files/grails-morph-plugin-0.1.zip

2021-02-24Grails