今回は、package コマンドの実行の際に指定する「環境 (environments)」について見ていきます(一覧)。 環境には以下の3つが定義されてました:
- development (dev) : 開発
- test (test) : テスト
- production (prod) : 製品
参照 URL
- Griffon Guide「3.2 Environments」
BuildConfig.groovy
環境の設定は以下のファイルに記述されています:
- $PROJECT_HOME/griffon-app/conf/BuildConfig.groovy
内容(の一部)はこんな感じ:
// 各環境の設定(デフォルトの設定を上書き) environments { // development 環境の設定 development { signingkey { params { sigfile = 'GRIFFON' keystore = "${basedir}/griffon-app/conf/keys/devKeystore" alias = 'development' storepass = 'BadStorePassword' keypass = 'BadKeyPassword' lazy = true // only sign when unsigned } } } // test 環境の設定 test { griffon { jars { sign = false pack = false } } } // production 環境の設定 production { signingkey { params { sigfile = 'GRIFFON' keystore = 'CHANGE ME' alias = 'CHANGE ME' // NOTE: for production keys it is more secure to rely on key prompting // no value means we will prompt //storepass = 'BadStorePassword' // no value means we will prompt //keypass = 'BadKeyPassword' lazy = false // sign, regardless of existing signatures } } griffon { jars { sign = true pack = true destDir = "${basedir}/staging" } webstart { codebase = 'CHANGE ME' } } } } // デフォルトの設定(カスタム環境を作成する際にも使える) griffon { memory { //max = '64m' //min = '2m' //maxPermSize = '64m' } jars { sign = false pack = false destDir = "${basedir}/staging" jarName = "${appName}.jar" } extensions { jarUrls = [] jnlpUrls = [] /* props { someProperty = 'someValue' } resources { linux { // windows, macosx, solaris jars = [] nativelibs = [] props { someProperty = 'someValue' } } } */ } webstart { codebase = "${new File(griffon.jars.destDir).toURI().toASCIIString()}" jnlp = 'application.jnlp' } applet { jnlp = 'applet.jnlp' html = 'applet.html' } } signingkey { params { def env = griffon.util.Environment.current.name sigfile = 'GRIFFON-' + env keystore = "${basedir}/griffon-app/conf/keys/${env}Keystore" alias = env // storepass = 'BadStorePassword' // keypass = 'BadKeyPassword' lazy = true // only sign when unsigned } } ...
- environment ノード下に development, test, production に対応する環境の設定が書かれています。
- environment ノードと同列の griffon, signingkey ノードはデフォルトの設定です。 上記の各環境の設定で明示的に指定されていないパラメータは、こちらのノードで設定されている値が使用されます。
設定の変更
Griffon アプリケーションを署名付きでパッケージングしたい場合、environments/production ノード下の 'CHANGE ME' となっているところを変更しましょう。
例えば、$USER_HOME*1にあるキーストア .keystore*2 を使用して署名したい場合(alias は「waman」とします)、
production { signingkey { params { sigfile = 'GRIFFON' keystore = "$userHome/.keystore" alias = 'waman' // storepass, keypass が設定されなければ、コマンド・プロンプトで入力を求められる storepass = '《キーストアのパスワード》' keypass = '《鍵パスワード》' lazy = false // sign, regardless of existing signatures } } griffon { jars { sign = true pack = true destDir = "${basedir}/staging" } webstart { codebase = '《Java Web Start のコードベース》' } } }
のようにします。
- BuildConfig 内(Griffon のスクリプト内)では、いくつかの定義済変数が使え、$USER_HOME に対応する変数 $userHome もあります。 Griffon Guide「4.4 Customising the build」参照。
- キーストア等のパスワード storepass, keypass を指定していなければ、コマンド・プロンプトで入力を求められます。
- 《Java Web Start のコードベース》に関しては、そのうち機会があれば。
- 作者: Andres Almiray,Danno Ferrin,James Shingler
- 出版社/メーカー: Manning Pubns Co
- 発売日: 2012/06/28
- メディア: ペーパーバック
- クリック: 8回
- この商品を含むブログ (19件) を見る