2008-09-12 17 views
7

Flexプロジェクトでビルド休憩を取っている私の会社では、繰り返し問題があります。主に問題は、開発者がローカルマシンで行うビルドが、ビルドマシンで発生するビルドとは根本的に異なるために発生します。開発者はFlexBuilder/eclipseを使用してプロジェクトをビルドしており、ビルドマシンはコマンドラインコンパイラを使用しています。必然的に、{projectname}-config.xmlおよび/またはビルドを実行するバッチファイルは、eclipseで使用されるプロジェクトファイルと同期しないため、ビルドは開発者のマシンで成功しますが、ビルドマシンでは失敗します。FlexプロジェクトをAnt/Nantで構築する

FlexBuilderのプロジェクトファイルを{projectname}-config.xmlファイルに変換するためのユーティリティプログラムを作成する作業を開始しましたが、これはドキュメント化されていませんし、b)ひどいハックです。

設定ファイルを取得するために-dump-configスイッチを調べましたが、これにはいくつかの問題があります:1)生成された設定ファイルには、私たちの環境では動作しない絶対パスがありますMac、いくつかのWindowsマシン)、2)IDEから実行する場合にのみ動作しますので、ビルドプロセスに組み込むことはできません。

明日は、私がひどく好きだよどちらもオプションのカップルを、議論しようとしている。

A)これらの絶対参照を削除するためにはSubversionにポストのチェックインイベントを追加、または
b)絶対参照を削除するビルド前のプロセスを追加します。

私たちがこの問題を克服する最初の開発者グループだとは思えませんが、私はGoogleで良い解決策を見つけることができません。他のグループはどのようにこの問題に対処しましたか?

答えて

1

Flexbuilderでantを使用するための文書化されていない要件の1つは、変数FLEX_HOMEをantスクリプト内に設定することでした。通常のbuild.xml内で次があります。

<!– Module properties –> 
<property environment=”env”/> 
<property name=”build.dir” value=”build”/> 
<property name=”swf.name” value=”MyProjectSwf”/> 
<property name=”root.mxml” value=”Main.mxml”/> 
<property name=”locale” value=”en_US”/> 
<property name=”FLEX_HOME” value=”${env.FLEX_HOME}”/> 

これは面倒のように見えるかもしれませんが、あなたが開発者のための複数のプラットフォームを使用している場合には、プラットフォームや環境全体の整合性を得るためにはるかに合理的なアプローチです。

HTH

1

ないあなたの特定の問題に対する解決策、回避策は、継続的インテグレーションサーバを使用することですが。

Cruise Controlのようなものを使用すると、誰かがソース管理に何かを提出するたびに自動的にビルドキックオフすることができます。何らかの理由(環境の不一致を含む)でビルドが失敗した場合、それを修正した開発者の責任です。さまざまな方法で失敗/成功の電子メールを送信するように設定できます。

関連する問題