2012-05-04 51 views
6

私たちは、大きくて扱いにくいが、かなり安定したTapestry 4.1で書かれたWebアプリケーションを持っています。そのために、代わりにGrailsでいくつかの新機能を開発しています。私たちの顧客は違いを知るべきではなく、可能であれば誰も内部的には誰も、例えばインストールサービスでは、Grailsアプリケーションは、既存のTapestryコードと同じWARになり、より具体的なパスに設定されたGrailsDispatcherServletとするのが理想的です。また、GantとIvyのビルドシステム(現在のAnt、Mavenへの移行)をやり直すことは選択肢にはならないという、既存のアプリケーションのモンスター構築プロセスに最小限の変更が必要です。開発中のライブリロードのためにWARを爆発的に扱うことができればうれしいでしょう。その後、Grailsと既存のWebアプリケーションの統合

質問、:

  • これは可能ですか?
  • もしそうなら、どこから始めますか?
  • もしそうでなければ、次善策は何ですか?
  • 何が必要なのですか?

GORMを使用しないように注意してください。私たちのすべてのデータは、すでにJavaドメインとメッセージング層を持つWebサービスから来ています。

+0

データを永続化するために休止状態を使用していますか、それとも何か他のものを使用していますか? – allthenutsandbolts

+0

ちょっと考えて - 別にgrailsアプリを作成してから、grailsアプリの戦争を元のアプリの戦争と一緒に.earファイルとしてバンドルするのはどうですか?こうすることで、元のビルドを維持し、grailsの意図した動作を維持し、最後に追加の手順を追加して.earファイルを構築することができます。大きな疑問は、統合のレベルが2つの間でどのようなものか、統合のポイントと、それをシームレスに見せるために適切なURLを書き直す方法です。 – GreyBeardedGeek

+0

Groovyの代わりにJavaを使用していることを除いて、Spring MVC(Grailsの主要コンポーネント)を使ってよりうまく処理できるように思えます。 –

答えて

1

あなたはGrailsのインストール・テンプレートを実行して、サーブレットマッピングを変更するにはweb.xmlのテンプレートを編集することができますが、Grailsのアプリを構築するためにAnt & Maven(またはのGradle)を使用することができますが、以降は「ない

を命じます私の経験では、マイナーな調整が必要な場合があります。 Antの統合(依存関係のためにivyを使用する)を使用して、Gradleをビルドして使用してAntをラップし、特別な要件のためにビルドを修正しました。

GantスクリプトはGrailsの中核であり、多くのことが、スクリプトが(使用するプラグインに応じて)起こるため、スクリプトが合わないために2つのビルドをマージする際に問題が発生する可能性がありますあなたのユースケースを念頭に書いてください。

2

良いニュース:はい、可能です。

悪いニュース:少し毛深いです。少なくとも2つの方法があります

:ディランによって示唆されるように

  1. は、Grailsのいくつかの調整で、既存のアプリケーションに対応するために構築し変更します。
  2. 既存のWARファイルとGrailsによって作成されたWARファイルを結合する別のAntターゲットを作成します。

最初のオプションは、Grailsビルドを変更することです。 Grailsがバージョンを更新し、カスタマイズされて調整されたGrailsビルドがまったく失敗する危険性があります。あなたはここでもそこでも終わらないでしょう。これを修正するには、フレームワークがビルドをどのように生成するかについて深い知識が必要です。これが新しいフレームワークとの最初の遭遇であるため、おそらく学習曲線が急峻すぎるでしょう。

Grailsをビルドする必要はありませんので、2番目の方が好きです。 web.xml設定がどのように機能するかを知る必要があります。私はあなた自身がすでにあなた自身のAntビルドを持っているので、あなたはすでにこの知識を持っていると思います。おそらく、これは最も抵抗の少ない経路です。

第2のアプローチの欠点は、開発中に展開されたWARを持つことが難しいことです。しかし、古いアプリケーションと新しいアプリケーションを開発中に一緒にテストする必要がなくても分離できれば、軽量開発サーバーを使ってGrailsで開発を行うことができます。

次のステップでは、古いアプリケーションをGrailsで呼び出されるJavaコンポーネントとしてGrailsで実行できるようになります。

関連する問題