4

Tomcat にデプロイされている Grails プロジェクトを継承しました。基本的に、以前のエンジニアが行ったことをリバース エンジニアリングする必要があります。

私の質問は、Grails が Grails 環境の 1 つをどのように選択するかということです。

したがって、Config.groovy には次のようなものがあります。

environments
{
    development 
    {
        .  . . 
    }
    production
    {
       . . .
    }    

}

しかし、展開された Tomcat サーバーで、Tomcat の起動時に「運用」ではなく「開発」が選択されるとはどういうことでしょうか? web.xml のコンテキストまたは初期化パラメーターとして、次のようになると想定しました。

<code>
    <init-param>
        <param-name>grails.environment</param-name>
        <param-value>production</param-value>
    </init-param>
</code>

すべての grails ドキュメントは、実行することを前提としています

grails war your-selected-environment

しかし、戦争アーティファクトがどのように影響を受けるかを正確に文書化するようには設計されていません.

4

4 に答える 4

10

あなたが実行する場合

grails test war

たとえば、「テスト」固有の環境ブロックのコードのみを使用するように戦争が構築されます。ランタイム環境で何も心配する必要はありません。

欠点は、環境ごとに個別の戦争を構築する必要があることです。

別の方法として、war を 1 つだけ生成し、Tomcat の起動時に環境変数を環境ごとに設定して、選択する構成を grails に指示することもできます。これを行うには、次のように設定します。

-Dgrails.env=test
于 2013-09-19T15:19:08.460 に答える
5

Tomcat 環境ファイルを編集します。Tomcat 7 の場合:

/path/to/apache-tomcat-7.x.x/bin/setenv.sh

grails.env システム プロパティをコマンド ラインに追加します。

CATALINA_OPTS='-Xms2048m -Xmx8192m -Dgrails.env=dev'; dev を必要な環境に置き換えます

于 2016-09-20T15:04:02.163 に答える
0

環境は、Tomcat の起動時ではなく、war のビルド時に選択されます。走るとき

grails war

production環境は暗黙的に選択されますが、コマンド ラインで を使用してオーバーライドできます-Dgrails.env=development。デプロイに関するマニュアルのセクションを確認してください: http://grails.org/doc/2.2.4/guide/single.html#deployingAnApplication

于 2013-09-19T15:09:26.233 に答える