天天看點

Griffon五分鐘入門指南

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/7883839

版權聲明:作者chszs,版權所有,謝絕轉載!

一、介紹

Griffon是一個類似于Grails的應用程式架構,用于建構富桌面應用程式,基于Groovy、Java和Swing等技術。

Griffon采用了習慣優于配置,可以自動化實作很多通用開發任務,而且還有豐富的插件。

Griffon還具有将特征屬性綁定到Widget和可擴充的事件系統。這些特性使得用Griffon來建構富網際網路應用是極好的選擇。

Griffon是一個全生命周期架構:它不僅在建立應用程式、維護應用程式階段可以自動化,而且在建構和部署階段也是如此。下面,我們将開始建立、運作、打包、部署一個Java WebStart應用程式,讓大家快速掌握Griffon的基本知識。

二、先決條件

1. JDK 6

下載下傳并安裝JDK 6以上版本。

2. Griffon包

在http://griffon.codehaus.org/Download 下載下傳Griffon 1.0.2釋出包。

http://dist.codehaus.org/griffon/griffon/1.0.x/griffon-1.0.2-bin.zip

三、搭建環境

1. 解壓Griffon

将griffon-1.0.2-bin.zip解壓到C:\griffon

2. 設定環境變量

設定名為GRIFFON_HOME的環境變量,并把值指向解壓目錄。

為PATH環境變量添加GRIFFON_HOME/bin值。

注意:一定要設定環境變量,否則在指令行下無法執行griffon指令。

3. 驗證

通過CMD進入到指令行模式,執行以下指令:

C:\griffon\bin>griffon help

Welcome to Griffon 1.0.2 - http://griffon-framework.org/

Licensed under Apache Standard License 2.0

Griffon home is set to: C:\griffon

......

注意:首次運作會自動下載下傳安裝或更新一些庫或包,如下:

griffon-swing-1.0.1-release.zip,

griffon-jumpstart-1.3-release.zip,

griffon-presentation-1.1-release.zip,

griffon-swt-1.0-release.zip,

ant-1.8.2.jar,

ant-launcher-1.8.2.jar,

ant-junit-1.8.2.jar,

jansi-1.7.jar,

jline-0.9.94.jar,

commons-io-2.1.jar,

commons-lang-2.6.jar,

commons-codec-1.6.jar,

commons-collections-3.2.1.jar,

commons-beanutils-1.8.0.jar,

httpcore-4.1.2.jar,

httpclient-4.1.2.jar,

jsch-0.1.45.jar,

jzlib-1..7.jar,

http-builder-0.5.2.jar,

xercesImpl-2.9.1.jar,

ezmorph-1.0.6.jar,

xml-resolver-1.2.jar,

griffon-cli-1.0.2.jar,

griffon-scripts-1.0.2.jar,

griffon-rt-1.0.2.jar,

org.springframework.core-3.1.2.RELEASE.jar,

org.springframework.beans-3.1.2.RELEASE.jar,

org.springframework.context-3.1.2.RELEASE.jar,

org.springframework.context.suppor-3.1.2.RELEASE.jar,

json-lib-2.4-jdk15.jar,

log4j-1.2.16.jar,

slf4j-api-1.6.4.jar,

slf4j-log4j12-1.6.4.jar,

jcl-over-slf4j-1.6.4.jar,

jul-to-slf4j-1.6.4.jar,

groovy-all-1.8.6.jar

4. griffon常用指令

  griffon add-proxy

  griffon app

  griffon archetype-info

  griffon clean

  griffon clear-dependency-cache

  griffon clear-proxy

  griffon compile

  griffon console

  griffon create-addon

  griffon create-app

  griffon create-archetype

  griffon create-command-alias

  griffon create-integration-test

  griffon create-mvc

  griffon create-plugin

  griffon create-script

  griffon create-service

  griffon create-unit-test

  griffon dependency-report

  griffon doc

  griffon generate-view-script

  griffon help

  griffon init

  griffon install-archetype

  griffon install-plugin

  griffon integrate-with

  griffon interactive

  griffon list-archetype-updates

  griffon list-archetypes

  griffon list-plugin-updates

  griffon list-plugins

  griffon list-repositories

  griffon package

  griffon package-archetype

  griffon package-plugin

  griffon plugin-info

  griffon release

  griffon release-archetype

  griffon release-plugin

  griffon remove-proxy

  griffon replace-artifact

  griffon run-app

  griffon run-applet

  griffon run-script

  griffon run-webstart

  griffon set-proxy

  griffon set-version

  griffon shell

  griffon stats

  griffon test-app

  griffon uninstall-archetype

  griffon uninstall-plugin

  griffon upgrade

四、開發初步

1. 建立應用程式

建立應用程式使用griffon create-app指令。比如:

D:\tmp>griffon create-app HelloWorld

Base Directory: D:\tmp

Running script C:\griffon\scripts\CreateApp_.groovy

Resolving dependencies...

Dependencies resolved in 538ms.

Environment set to development

Resolving framework plugin dependencies ...

Framework plugin dependencies resolved in 725 ms.

    [mkdir] Created dir: D:\tmp\HelloWorld\griffon-app

    [mkdir] Created dir: D:\tmp\HelloWorld\griffon-app\conf

Created Tests for HelloWorld

Created Griffon Application at D:\tmp/HelloWorld

2. 運作應用程式

用Griffon建立的應用程式是桌面應用程式,使用者可以安裝、Applet應用程式,是以可以讓浏覽器運作應用程式,或使用WebStart運作等。

Griffon隐藏了各個平台的不同之處,使得應用程式具有可移植性。

要運作應用程式,總共有三種方式:

(1) 以桌面應用程式方式運作程式

D:\tmp>cd HelloWorld

D:\tmp\HelloWorld>griffon run-app

Base Directory: D:\tmp\HelloWorld

Running script C:\griffon\scripts\RunApp.groovy

Launching application ...

2012-08-19 18:18:51,273 [main] INFO  griffon.swing.SwingApplication - Initializing all startup groups: [helloWorld]

彈出一視窗程式,如下:

圖1:

關閉此視窗程式,輸出:

2012-08-19 18:22:48,436 [AWT-EventQueue-0] INFO  griffon.swing.SwingApplication- Shutdown is in process

   [delete] Deleting directory D:\tmp\HelloWorld\staging\windows64

   [delete] Deleting directory D:\tmp\HelloWorld\staging\windows

可見,第一種方式其背後是通過Swing庫實作的。

(2) 以Applet程式方式在浏覽器中運作

D:\tmp\HelloWorld>griffon run-applet

     [copy] Copying 11 files to D:\tmp\HelloWorld\staging

     [copy] Copying 19 files to D:\tmp\HelloWorld\dist\applet

     [copy] Copied 5 empty directories to 4 empty directories under D:\tmp\Hello

World\dist\applet

      [zip] Building zip: D:\tmp\HelloWorld\dist\applet\helloWorld-0.1-applet.zip

圖2:

由于我安裝的是JDK 7,Griffon運作有異常,官方推薦用JDK6。

(3) 以JNLP WebStart項目那樣運作

D:\tmp\HelloWorld>griffon run-webstart

World\dist\webstart

      [zip] Building zip: D:\tmp\HelloWorld\dist\webstart\helloWorld-0.1-webstart.zip

圖3:

同樣是JDK7的問題。難怪官方老是推薦要使用JDK6。