tezu memo blog

日々行った作業をメモしていきます

grails-platform-ui-scaffolding Install package-pluginコマンドでzip作成する必要有

mintsource/grails-platform-ui-scaffolding · GitHub

scaffoldで生成するGSPファイルをGrails Plugin: Plugin Platform UI仕様にするプラグイン
platform-uiのタグに変更するの面倒なので助かる
 

grails install-plugin [name] [version] でインストール不可

Grails central repositoryに登録されてないので、grails install-plugin [name] [version] の指定ではインストール出来ない
http://grails.org/plugins/search?q=grails-platform-ui-scaffolding
f:id:tezu35:20130219164736p:plain
 

GithubのZIPでインストール → 失敗

grails install-plugin [URL/File]でインストール。エラーが発生

$ grails install-plugin https://github.com/mintsource/grails-platform-ui-scaffolding/archive/master.zip

URLはGithubのZIPボタンから取得
f:id:tezu35:20130219163046p:plain

これでインスト出来たら楽なんですけどね、、

コンソールログ

| Loading Grails 2.1.1
| Configuring classpath.
| Environment set to development.....
| Downloading zip https://github.com/mintsource/grails-platform-ui-scaffolding/archive/master.zip. Please wait...
| Downloading zip https://github.com/mintsource/grails-platform-ui-scaffolding/archive/master.zip. Please wait....
| Error Zip /var/folders/k6/ntjhf80x3qd5whnvpntvfbzw0000gn/T/master.6589727975340207458.zip is not a valid plugin

 

ソースコピーでインストール → 失敗

マニュアルを見る限り、ソースコピーでもよさそう
scripts/InstallTemplatesPlatformUIScaffolding.groovyも含めてコピー

Now either:

Manually copy the files from the plugin's /src/templates/scaffolding folder to the root project /src/templates/scaffolding

Or install the grails-platform-ui-scaffolding plugin by referring it via a number of methods described here: http://grails.org/doc/latest/ref/Command%20Line/install-plugin.html

一応、インストールは終わったのでマニュアル通り、プラグインのテンプレートを自作プロジェクトにコピーするコマンドを実行

ファイルを認識しない?

$ grails install-templates-platform-ui-scaffolding

| Loading Grails 2.1.1
| Configuring classpath
| Running pre-compiled script
| Script 'InstallTemplatesPlatformUiScaffolding' not found, did you mean:
   1) InstallTemplatesPlatformUIScaffolding
   2) InstallTemplates
   3) CreateScaffoldController
   4) InstallPlugin
   5) UninstallPlugin

> Please make a selection or enter Q to quit:

マニュアルのtypo。-ui-ではなく-uI-
原因は違うけど再度エラー発生。ソースコピーのインストールは難しそう

$ grails install-templates-platform-uI-scaffolding

| Loading Grails 2.1.1
| Configuring classpath.
| Environment set to development....
| Error Error executing script InstallTemplatesPlatformUIScaffolding: java.lang.NullPointerException: Cannot invoke method getURI() on null object (Use --stacktrace to see the full trace)

 

ソース生成したZIPでインストール → 成功

プラグインのソースからZIPを生成してみる。Grailsのverが2.1.2以外だとエラー

$ pwd
/Users/tezu/Documents/workspace-ggts-3.1.0.RELEASE/grails-platform-ui-scaffolding
$ grails package-plugin
| Application expects grails version [2.1.2], but GRAILS_HOME is version [2.1.1] - use the correct Grails version or run 'grails upgrade' if this Grails version is newer than the version your application expects.

Grails2.1.2をダウンロード&インストール後に再度package-plugin実行。成功!
http://dist.springframework.org.s3.amazonaws.com/release/GRAILS/grails-2.1.2.zip

$ grails package-plugin
| Compiling 11 source files
| Compiling 136 source files
| Compiling 4 source files…
| Plugin packaged grails-grails-platform-ui-scaffolding-0.1.zip

grails install-plugin [URL/File]でインストール。成功!

$ grails install-plugin /Users/tezu/Documents/workspace-ggts-3.1.0.RELEASE/grails-platform-ui-scaffolding/grails-grails-platform-ui-scaffolding-0.1.zip
| Loading Grails 2.1.1
| Configuring classpath.
| Environment set to development.....
| Installing zip grails-grails-platform-ui-scaffolding-0.1.zip.....
| Installed plugin grails-platform-ui-scaffolding-0.1
| Resolving plugin JAR dependencies

テンプレートファイルのコピーも成功。grails-ec-adminがアプリケーション

$ grails install-templates-platform-uI-scaffolding
| Loading Grails 2.1.1
| Configuring classpath.
| Environment set to development....
sourceDir /Users/tezu/.grails/2.1.1/projects/grails-ec-admin/plugins/grails-platform-ui-scaffolding-0.1/.//src/templates/scaffolding
targetDir /Users/tezu/Documents/workspace-ggts-3.1.0.RELEASE/grails-ec-admin/src/templates/scaffolding
| Environment set to development.....
| Platform-UI Scaffolding templates installed successfully

$ pwd
/Users/tezu/Documents/workspace-ggts-3.1.0.RELEASE/grails-ec-admin/src/templates/scaffolding
$ ls -l
total 80
-rw-r--r--  1 tezu36  staff   4059  2 19 14:11 Controller.groovy
-rw-r--r--  1 tezu36  staff   3952  2 19 14:11 Test.groovy
-rw-r--r--  1 tezu36  staff   2189  2 19 14:11 _form.gsp
-rw-r--r--  1 tezu36  staff    989  2 19 14:11 create.gsp
-rw-r--r--  1 tezu36  staff   1519  2 19 14:11 edit.gsp
-rw-r--r--  1 tezu36  staff   2836  2 19 14:11 list.gsp
-rw-r--r--  1 tezu36  staff  11808  2 19 14:11 renderEditor.template
-rw-r--r--  1 tezu36  staff   3591  2 19 14:11 show.gsp

 

動作確認

Domainを生成後(Member)にgenerate-allコマンドでGSPとControllerを作成

$ grails generate-all jp.gr.java_conf.tezu.grails.ec.Member2
| Loading Grails 2.1.1
| Configuring classpath.
| Environment set to development.....
| Packaging Grails application....
| Compiling 1 source files
| Compiling 1 source files.....
| Packaging Grails application.....
| Generating views for domain class jp.gr.java_conf.tezu.grails.ec.Member2
| Generating controller for domain class jp.gr.java_conf.tezu.grails.ec.Member2
| Finished generation for domain class jp.gr.java_conf.tezu.grails.ec.Member2

 
一覧 list.gsp
f:id:tezu35:20130219143923p:plain

新規作成 create.gsp
f:id:tezu35:20130219143929p:plain

詳細 show.gsp
f:id:tezu35:20130219143936p:plain

編集 edit.gspと編集結果
f:id:tezu35:20130219143945p:plain
f:id:tezu35:20130219143949p:plain

削除結果
f:id:tezu35:20130219143956p:plain

これをベースに一覧画面を検索画面に変更するなどのカスタマイズをすれば楽ですね