0

以前はantに基づいていた、顧客用のandroidmavenビルドをセットアップする必要があります。

基本アプリはホワイトラベルの実装であり、アプリは複数のサードパーティの顧客に配布されます。これらの顧客バージョンはそれぞれ、同じソースコードと一連の共有リソースを使用しています。ただし、すべての顧客には、自社に固有のリソース(定数、資産など)もあります。

私のAndroidプロジェクトの構造は次のようになります。関連するファイル/フォルダーのみを含めましたが、構造はantビルドから残っています。

App
|--src
|--res
|--res-customer1
|--res-customer2
|--pom.xml

これは、同じソースから異なるリソースを使用して複数の.apkアーティファクトを構築する必要があることを意味します。これを行うための最良のアプローチは何ですか?

私が最初に試したのは、メインプロジェクトのpomですべての顧客に対して異なるプロファイルを使用することでした。次に、すべてのMavenビルドを実行するシェルスクリプトを作成しました(顧客ごとに1つ)。

次に、メインプロジェクトでリリースプロファイルを1つだけ使用し、コマンドラインを介して顧客固有のプロパティを渡すことを思いつきました。私の最初のアプローチと同様に、プロパティはシェルスクリプトを介して渡されます。

しかし、私はそれに満足していないので、複数のモジュールを使用することを考えました。顧客ごとに1つ。しかし、ここでの私の問題は、メインプロジェクトからすべてのモジュールにソースをコピーせずに、同じソースからそれらをビルドするにはどうすればよいですか?または、すべての顧客に対してAndroidプロジェクトをセットアップし、メインプロジェクトをapklibと呼ぶ必要がありますか?これにより、共有リソースと顧客固有のリソースがマージされますか?

このようなことを行うためのベストプラクティスはありますか?

他のアプローチも大歓迎です。

4

1 に答える 1

1

わずかな違いについては、プロファイルとリソースフィルターでいくつかの異なるプロパティを使用するだけで十分な場合があります。ただし、プロファイルはMavenの世界では少し悪いパターンであり、操作が難しい場合があります。

顧客ごとに個別のモジュールを使用し、ベースアプリケーションをapklibにするというあなたの勘は正しいです。私は、Maven android開発者リストで、これが彼らが使用し、彼らのために機能しているものであると報告した何人かの人々を知っています。私はあなたの場合にもそのアプローチを個人的に使用します。

一般的に、私はメーリングリストでこの質問をするか、少なくとも言及することをお勧めします。

于 2012-06-04T18:04:07.360 に答える