2016-06-21 7 views
0

てGrailsの3アプリケーションYMLファイルのプロパティを変更する私は、デフォルトでこのプロパティに、たとえば今はGradleの

test: 
    network: 
     path: '/home/cool/testing_data' 

、I一部をGrailsの3テイクでapplication.ymlファイルを生成しているいくつかのプロパティがあります。ビルドスクリプトを呼び出すときにこのプロパティを変更して、実行されるさまざまなOSで異なるようにします。 Ie:Windowsでは、そのパスは 'E:/ shared/testing_data'でなければなりません。solarisでは、別のものです。

このポストhereを使用して、私は現在私が現在稼働しているOSを特定できますので、私は潜在的にいくつかの変更を加えることができます。例:

import org.apache.tools.ant.taskdefs.condition.Os 
task checkWin() << { 
    if (Os.isFamily(Os.FAMILY_WINDOWS)) { 
     // it is windows, lets change the path to not be linux like 
    } 
} 

だから私の質問は、必要に応じてのGradleまたはその他の手段を用いて、ですが、私は、アプリケーションがデプロイされる可能性があります別のOSのシステムに対応するためにapplication.ymlファイルのプロパティを変更できますか?私は、行ごとにapplication.ymlファイルを読み込み、文字列の置換を行うことを検討していますが、クリーナーソリューションがない場合に限り、私はこれに頼ります。

私はこの問題を解決するために間違ったツールを使用しているかもしれません。質問するとよい質問は、私がここで行方不明になっている簡単な方法でしょうか、 dev、prod、オペレーティングシステム用、すでに再利用できるgrailsのコア機能に組み込まれていますか?

答えて

1

application.ymlと同じフォルダにapplication.groovyというファイルを作成するだけです。 Groovyファイルでは、任意のスクリプトを使用してプロパティの値を設定できます。例えば

application.groovyファイル(もYMLからオプションを削除する)に次の行を追加します

test.network.path = Os.isFamily(Os.FAMILY_WINDOWS) ? 'd:\something' : '/home/something' 
+0

ああ、あなたは正しいです。良いアイデア – angryip