2012-03-05 11 views
3

私はローカル開発者のように "local"というカスタム環境を動かしたいと思っていました。私は戦争が "共有"開発サーバーに展開される前に、これのconfig(例:DB接続)を使用します。しかし、ブラウザをリフレッシュしたときにGSPへの変更などの標準的なGrailsの "開発"環境の動作が不足していることに気付きました。Grails環境の動作をカスタマイズする

これで、カスタム環境の振る舞いをどのように変えるのだろうかと思いました。どのように "開発"のすべての設定を別の環境にコピーできますか?

+0

「『共有』開発サーバは、」より良いカスタム環境として収まらないでしょうか? – doelleri

+0

ありがとうございました。実際はこれが私が今始めた経路ですが、好奇心が私を勝ち取ったのです...私はGrailsの別の部分を理解する必要があります。必要があります... – Steve

答えて

1

自動リロードは環境に依存しないと私は思います。 grails run-appを実行すると、実行する環境に関係なくリロードが行われます。言い換えれば、自動リロードは、その後、あなたがgrails warを使用して戦争を構築する場合は発生しませんリロード、一方

  • grails dev run-app
  • grails prod run-app
  • grails test run-app
    • のすべてのために起こりますそれを展開してください。再読み込みは、環境ではなくアプリの実行方法によって異なります。 devに似たカスタム環境を定義する最も簡単な方法は、一連のデフォルト設定を定義し、各環境の設定を選択的に上書きすることです。

      //default config 
      myApp { 
          userRoleName = 'ROLE_USER' 
          adminRoleName = 'ROLE_ADMIN' 
          dateFormat = 'yyyy-MM-dd' 
      } 
      
      environments { 
          // config overrides for dev 
          development { 
           myApp.dateFormat = 'yyyy/MM/dd' 
          } 
      
          // config overrides for local 
          local { 
           myApp.dateFormat = 'MM/yy/dd' 
          } 
      } 
      
    +1

    おかげでドン、あなたが言っていることは意味があり、それは私がそれがうまくいくと思った方法です。 Grails -Dgrails.env = local run-appまたはgrails -Dgrails.env =ローカルdev-run-appの再読み込みがうまくいかない(Grails 2.0.1の下で)。そのように実行すると "dev"の中の何かがピックアップされるはずですが、上記のように "ローカル"を定義した場所をオーバーライドします...そして、それは設定の設定のために働いていますが、リロードは失われてしまいます。 – Steve

    +0

    Steve - Grailsのリロード機能はカスタム環境では動作しません。 GSP再コンパイルは、 '-Dgrails.gsp.enable.reload = true'をコマンドラインに追加することで修正できますが、* .grailsクラスは引き続き無視されます。 '-Ddisable.auto.recompile = false'を追加しても役に立たなかった。私はGrails 2.1.1を使用しています – curd0

    5

    あなたは、実行アプリフラグを指定するカスタム環境で変更GSPのリロードを有効にすることができます。

    -Dgrails.gsp.enable.reload=true 
    
    +0

    おかげで、ありがとう! – Steve

    関連する問題