2012-03-16 14 views
0

groovyのビルドスクリプトではかなり奇妙な問題に直面しています。プロジェクト全体は、他のすべてのビルドスクリプト(mavenとant)を呼び出すhelper groovyスクリプトを使用します。呼び出したグルーヴィーなスクリプトによって呼び出されるAntターゲットの一つは、「実行」Grailsの戦争を通じて呼び出す:grailsへのAnt呼び出しは、 "[exec]アプリケーションがGrails 0.5より前であると失敗します:grails upgrade"

<exec executable="cmd" dir="${parentDir}/${grails.appname}"> 
     <arg value="/c"/> 
     <arg path="${env.GRAILS_HOME}/bin/grails.bat"/> 
     <arg value="war"/> 
     <arg value="${grails.appname}-${app.version}.war"/> 
    </exec> 

このブロックの呼び出しがで失敗します。この問題を回避行く方法

 [exec] Application is pre-Grails 0.5, please run: grails upgrade 

任意の提案?

お時間をいただきありがとうございます。

+1

アプリケーションディレクトリで 'grails war'を正しく実行できますか?そのエラーは、あなたのアプリケーション構造内の何かが破壊されたことを示します –

+0

コマンドラインから実行する場合も同じ例外です。提案されているようにアップグレードを実行した後で動作します。 –

答えて

1

私は最終的に問題の解決策を見つけましたが、これが最良の方法であるかどうかわかりませんが、問題は解決しました。したがって、 "exec"ブロックと同じターゲットでは、grails.batでアップグレードを呼び出すための新しい "exec"ブロックを追加しました。パラメータを指定せずにこのコマンドを呼び出すと、要求された操作を続行するかどうかの確認の質問が生成されます。これは、antでは無限ループを作成します。これを避けるために、 "-f"パラメータを追加しました。 EXECブロック全体:

<exec executable="cmd" dir="${parentDir}/${grails.appname}"> 
     <arg value="/c"/> 
     <arg path="${env.GRAILS_HOME}/bin/grails.bat"/> 
     <arg value="upgrade"/> 
     <arg value="-force"/> 
    </exec> 

これは誰かを助けることを望みます。

関連する問題