2011-06-29 2 views
1

まず、google docsからのライブラリプロジェクトについての私の知り合いのほとんどと、このarticleのアンドロイドビルドシステムの詳細な説明があります。私のEclipseワークスペースで複数のクライアントプロジェクト(Eclipse内)で複数のアンドロイドライブラリプロジェクトの異なるリビジョンを使用する

セットアップ

私はアンドロイドのライブラリをインポートするいくつかのクライアントのプロジェクトを持っています。各クライアントは異なるライブラリセットをインポートし、いくつかのライブラリはお互いをインポートします。

各クライアントには独自のSubversionリポジトリがあり、すべてのライブラリは単一のSubversionリポジトリにあります。

すべてビルドして実行します。

問題

  1. クライアントのプロジェクトとライブラリを同期進化していません。クライアントプロジェクトの中には、古いライブラリのリビジョンが必要なものがあります。 Eclipseで多くのプロジェクトを作成する必要があります。いくつかのライブラリプロジェクトは、ライブラリリポジトリの異なるリビジョンから複数回作成する必要があります。
  2. 単一のライブラリプロジェクトでは、クライアントが実際にそれらを使用していなくても、すべてのリソースがクライアントプロジェクトで終了するため、たくさんのライブラリが必要です。私はここにいますか?
  3. 同じライブラリの異なるリビジョンをワークスペースにチェックアウトします。 Eclipseでは、複数のライブラリプロジェクトをインポートすることはできません。Eclipseプロジェクトが.projectファイル内で同じ名前を持つためです(Eclipseは2番目のプロジェクトをインポートしようとしたときにEclipseが不平を言う)
  4. Eclipse ??

EDIT

Jarek Potiukの答えは動作します。しかしそれはポイント3で説明した問題を解決するだけです。私はまだ各ライブラリプロジェクトをEclipseで個別に作成する必要があります。

インポートされたライブラリプロジェクトごとにEclipseでプロジェクトを作成する必要はありませんか?誰かに蟻の解決策がありますか?

答えて

2

私はそれをどのように処理するか説明しましょう。私たちは水銀のサブポを使用していますが、あなたのケースではsvn:externalsを使ってまったく同じでなければなりません。

0)前提条件:メインプロジェクトで

1)私たちは「subrepo」ディレクトリを持っているし、我々はすべての外部保つ....あなたの.projectと.classpathファイルは、プロジェクトでレポしてコミットしていることを確認してくださいライブラリ(サブディレクトリとして)があります。水銀ではsubrepoを使って行います.SVNではsvn:externalsの設定を使ってライブラリの特定のバージョン(SVNタグまたはブランチURL)にリンクできるはずです:http://svnbook.red-bean.com/en/1.0/ch07s03.html

2)ネットエフェクトは、メインプロジェクトでは、サブプロポディレクトリ内の依存ライブラリを自動的にチェックアウトします。ここまでは順調ですね。

3)ライブラリにリンクされていないため、メインディレクトリに問題があります。この場合、 "新しいJavaプロジェクトを追加"、UNIQUEプロジェクト名を入力してください例libraryprojectname-mainprojectname。"Use default location"のチェックを外し、サブペポのライブラリを参照してください。 Eclipseは既存の.projectからプロジェクトを設定します。このプロジェクトをAndroidのプロジェクトに依存し、おそらくEclipseでも追加してください...注! UNIQUEの名前は.projectの名前は変更されませんが、Eclipseプロジェクトに複数のライブラリプロジェクトがチェックアウトされます。.....

4)プロジェクトがコンパイルされると、 .classpathファイル)...

5)誰かがプロジェクトをチェックアウトすると、ライブラリは適切なバージョンでチェックアウトされ、ポイント3を繰り返すだけです。) - サブペクト用の新しいJavaプロジェクトを追加し、プロジェクトに一意の名前を付けてください...それはそれです(Eclipseは内部的には一意の名前ではなくsubrepo/libraryディレクトリを参照します)

+0

私はまだEclipseで多くのプロジェクトを行っています。古いプロジェクトを最初からチェックアウトするには、いくつかのプロジェクトを作成する必要があります。 – thaussma

+0

あなたはどのようにリソースを扱いますか? 1つのライブラリプロジェクトを使用する場合、すべてのライブラリリソースはクライアントプロジェクトで終了します。あなたがそれらを使用しない場合でも。 – thaussma

+0

単一の大きなライブラリを使用することはかなり間違ったアプローチです。私は何年も前にそれを経験しており、維持することは非常に困難です。私の会社ではなく、小規模で独立した図書館プロジェクトを推進しています。私たちは15以上の小さなライブラリを持っていて、通常はプロジェクトのうちのわずか1〜2を使用します。これは素晴らしい効果をもたらします。独立した独立したコンポーネントを書く必要があります。 –

関連する問題