2012-01-15 7 views
1

現在、テストに使用されているコードをコメントアウトする小さなプログラムを作成しています。 リリース版をコンパイルするときにコンパイラの前に自動実行し、コンパイルが終了した後でコードにコメントを付ける別のプログラムにしたいと思います。Eclipseでのコンパイル前後で実行されるプログラムの作成

プログラムが動作するのは、ビルドプロセスに追加するだけです。 すべてのヘルパーに感謝します!

答えて

3

Eclipseを使用してアプリのリリースバージョンを作成しないでください。 Ant、Maven、またはEclipseよりはるかに柔軟性があり、GUIを必要としない他のビルド・ツールを使用し、継続的な統合サーバーでスクリプト化して使用することができます。

これらのツールはすべて、ビルド前のコンパイルおよびコンパイル後のタスクをビルドプロセスに組み込むために簡単に使用する必要があります。あなただけのあなたは、すべて持っているようにコードに変更するだけで、単一の場所を持っているでしょうのpublic static finalブール定数FOR_TESTを使用し、

if (TestUtil.FOR_TEST) { 
} 

にすべてのテストコードを含めることができ、言っ

コンパイルされたバージョンからテストコードが削除されました。複雑なJavaプログラムを必要としません。

リリースされたバージョンのすべてのテストコードを許可し、システムプロパティを使用してテストするときに有効にすることができます。これは、プリコンパイル/コンパイル後の段階を必要とせず、おそらく無視できるコストになります。

+0

しかし、上記のコードをコンパイルしますか?私は、C/C++コンパイラではコンパイラによっていくつかのものが無視されていることは知っていますが、Javaについてはあまりよく分かりません。私はコードにログを追加するクラスがあり、それは以下のようになります:Log.l( "stuff");プロダクションで呼び出しをしたくないので、Logクラスでこれを追加すると、ユーザーが自分のプログラムを使用する際の冗長な計算が妨げられますか? - これはAndroid関連のものなので、私が作ってみたいのは、できるだけ簡単なものです。もう一度ありがとう! – Mashiah

+0

TestUtil.FOR_TESTがfalseと評価されるブール定数である場合、前述のようにifブロックのコードはコンパイルされたクラスから削除されます。構文的に正しいものでコンパイルする必要がありますが、コンパイラはバイトコードにifブロックを含めません。 –

3

Eclipseでは、プロジェクトを右クリックし、Properties → Buildersを選択し、Newをクリックします。プロジェクトをビルドするときにEclipseが起動するAntスクリプトまたはコマンドラインを追加できます。同じダイアログでビルダーの順序を制御することもできます。

しかし、私はJB Nizet –に同意します。AntまたはMavenにプロジェクトをビルドさせることには多くの利点があります。

関連する問題