2011-06-30 9 views
0

私は、すべてのコンポーネントを1つの開発サーバーに保存し、ソースコードは現在SVNによって管理されているjava/grails Webアプリケーションを開発しました。私はデモの目的のために私のラップトップ上のバーチャルボックス内のCentOSインスタンスにこのアプリケーションを移植/準備したい。問題は、開発サーバーのIPアドレスを持つ複数の構成ファイルが存在することです。これは今やobivously、これはCentOSインスタンスのIPアドレスに変更する必要があります。 私のアプリケーションを移植/準備する最善の方法は何ですか?アプリケーションのデモを作成

私はsvnリポジトリからgit repoを作成した後、 "demo"というgitブランチを作成することができました。ここで設定ファイルに必要な変更を加え、必要なjarファイルを通常maven2経由で。

注:

  1. 私は 'ビルド' ツール(私はbuildrやGradleのために動くと思っています)
としてMaven2を使用してい
  • をGITするSVNから移動したいと思います
  • +0

    @jforberg:私はDRYの原則を知っています。私のアプリケーションは、さまざまなフレックスモジュールを持つgrails 'front-end'と、 'back-end'としてのJava Webサービスで構成されています。このモジュール性の結果として、複数の構成ファイルが本質的に必要です。さらに、このアプリはまだ開発段階にあるため、すべてのコンポーネントが同じサーバー上にあるため、同じIPを参照します。アプリが明らかに変更されるプロダクションに移行したとき。 – Dan

    答えて

    0

    次の2つのソリューション

    を持っているか、SVN(SVNはそれをサポートしています)

    でブランチを作りますまたは、プロパティからのパラメータがファイル読み取りにMavenを使用して、プロパティを読み取るために2つのプロファイルを作成することができ、デモや地元enviorment

     
    <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>properties-maven-plugin</artifactId> 
        <version>1.0-alpha-2</version> 
        <executions> 
         <execution> 
          <phase>initialize</phase> 
          <goals> 
           <goal>read-project-properties</goal> 
          </goals> 
          <configuration> 
           <files> 
            <file>${env}.properties</file> 
           </files> 
          </configuration> 
         </execution> 
        </executions> 
    </plugin> 
    

    とプロファイル用のファイル:

     
    <profiles> 
        <profile> 
         <id>local</id> 
         <activation> 
          <activeByDefault>true</activeByDefault> 
         </activation> 
         <properties> 
          <env>local</env> 
         </properties> 
        </profile> 
        <profile> 
         <id>demo</id> 
         <activation> 
         </activation> 
         <properties> 
          <env>demo</env> 
         </properties> 
        </profile> 
    </profiles> 
    
    3

    あなたはたくさんあります私のアドバイスは、「互いに干渉すると同時に複数のことをやろうとしない」ということです。

    SVNをGITに移行することは悪い考えではありませんが、IPアドレスの設定に関する問題を解決するためには何も買っていません。実際、あなたがコードを提出する方法(変更を意味する)の不調は、誰もが新しい提出プロセスを知るにつれてあなたを遅らせるだけです。

    他のビルドツールにmaven2を移動するのと同じ理由でビルドに影響します。私が間違ってはいけません。一つのビルドツールを別のビルドツールよりも上手く利用することに利点がありますが、トリガーを引く決定を下す前にツールが失敗するまで待つほうがはるかに合理的です。

    あなたのアプリは、「組み込み」の別のマシンに移動するための柔軟性を持って構築されている必要があります。これが最優先事項であり、まず問題を解決する必要があります。次に、異なる開発プロセス(異なるソースコード管理とビルドツールで得られるものです)を試してみることができます。

    +0

    私は一般的にあなたのアドバイスに同意しますが、私はこのシナリオに当てはまるとは思わない* *目標はデモ用に私のアプリを移植することだからです。 SVNからGIT、Maven2からBuildr/Gradleへの移行は、私が後で実装する予定の第三の懸念です。しかし、もしそれらの変更が私のアプリの移植を容易にすることができれば、後ではなく私が今やりたいと思った。 – Dan

    +0

    さらに、私のアプリは他のマシンに移動するのに十分なほど柔軟性があることに同意します。そして私はそのようなアプリケーションを作ることを試みました、問題は様々なコンポーネント:activemq、flexモジュール、grailsフロントエンドはサービスを提供するサーバーのIPアドレスが必要です。最後に、この質問の目的の一部は、さまざまなマシンに展開するためにアプリをより柔軟にする方法についての洞察力/フィードバックを得ることです。 – Dan

    +0

    @ダン、あなたが一緒に疎結合した多くの独立したコンポーネントを持っているように思えます。それはいくつかのタスクには良いことであり、他のタスクには悪いことです。モノリシックプログラムの場合、シングルポイント構成ははるかに簡単ですが、高度なコンポーネント指向の環境では(これを選択した場合でも)実行できます。そのトリックは、すべてのコンポーネントが中央ストアから正しい構成を照会するようにすることです。おそらく、正しい答えは、本当に良いインストール文書に投資することだけです。指示があれば、それを自動化することを検討する能力があります。 –

    関連する問題